Сообщение 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 прикольно было играться с шаблонами, исключениями, множественным наследованием, виртуальными базовыми классами, а вот довести до ума массивы — скучно.
_>Но в любом случае в современном 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++ нет оправдания вот такому:
Эээх, но это же было все не прикольно, WG21 прикольно было играться с шаблонами, исключениями, множественным наследованием, виртуальными базовыми классами, а вот довести до ума массивы — скучно.
_>Но в любом случае в современном 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 прикольно было играться с шаблонами, исключениями, множественным наследованием, виртуальными базовыми классами, а вот довести до ума массивы — скучно.