Информация об изменениях

Сообщение Re[15]: Метапрограммисты надоели от 09.10.2014 9:51

Изменено 09.10.2014 9:58 slava_phirsov

Здравствуйте, alex_public, Вы писали:

_>Но в любом случае в современном C++ это уже всё давно не актуально. )


После std::initializer_list (2011г) — да. Вопрос, нужен ли бы был std::initializer_list, если бы в C++ были нормальные встроенные массивы —


Любители оптимизации, считающие, что неявная передача размера губит им производительность, могли бы использовать передачу указателя на первый элемент в явном виде (откуда бы вызываемая функция узнала размер массива, это уже другой вопрос, но, наверное, откуда-нибудь бы узнала, ну там ограничивающий элемент в конце, например).


Для совместимости с C можно было бы оставить "разложение" массива до указателя для случая функций со спецификатором extern "C".


Эээх, но это же было все не прикольно, WG21 прикольно было играться с шаблонами, исключениями, множественным наследованием, виртуальными базовыми классами, а вот довести до ума массивы — скучно.
Re[15]: Метапрограммисты надоели
Здравствуйте, alex_public, Вы писали:

_>Но в любом случае в современном C++ это уже всё давно не актуально. )


После std::initializer_list (2011г) — да. Вопрос, нужен ли бы был std::initializer_list, если бы в C++ были нормальные встроенные массивы —


Любители оптимизации, считающие, что неявная передача размера губит им производительность, могли бы использовать передачу указателя на первый элемент в явном виде (откуда бы вызываемая функция узнала размер массива, это уже другой вопрос, но, наверное, откуда-нибудь бы узнала, ну там ограничивающий элемент в конце, например).


Для совместимости с C можно было бы оставить "разложение" массива до указателя для случая функций со спецификатором extern "C".

И уж ни в C, ни в C++ нет оправдания вот такому:

void foo(int x[4]);

...

int z[3] = {};

foo(z); // ну вот тут-то компилятор мог бы возмутиться!!! Ну я так думаю...



Эээх, но это же было все не прикольно, WG21 прикольно было играться с шаблонами, исключениями, множественным наследованием, виртуальными базовыми классами, а вот довести до ума массивы — скучно.