Я в настоящее время читаю через предложения, принятые в C ++ 26, после почти десятилетия следования стандарту довольно периодически (из-за того, что он ограничен другими языками на работе).
Я замечаю полное отсутствие (до сих пор) Code-Code-Syntax Calltax Auto-VAITEAX AUTO-IT-PAMERECREACE in-IT-SINGEX in-paraterceced = Параметр .
Оригинальное обоснование для тогдашнего нового синтаксиса было предотвратить ненужные копии, например, Если DeckType (параметр) является аргументом для единого конструктора, а также существует конструктор копирования:
struct Struct
{ // in `Struct variable = parameter`
Struct(Parameter parameter) {} // will be called first
Struct(const Struct & original) {} // will be called second
// in `Struct variable{parameter}` the second constructor will not be called
}
< /code>
Имеет ли эта рекомендация с момента отображения? P3106 является частью стандарта C ++ 26, а C ++ 20 имел P0475, но если это повлияло на рекомендуемый синтаксис вызова конструктора, я должен был это пропустить.
Подробнее здесь: https://stackoverflow.com/questions/796 ... superceded