В Википедии я нашел это:
A a( A() );
[Это] можно было бы устранить
определение переменной класса [
A
], взятие анонимного экземпляра класса [A
] илиобъявление функции для функции, которая возвращает объект типа [
A
] и принимает один (неименованный) аргумент, который является функцией, возвращающей тип [A
] (и без ввода).Большинство программистов ожидают первого, но стандарт C++ требует, чтобы он интерпретировался как второй.
Но почему? Если большинство C++ сообщество ожидает прежнего поведения, почему бы не сделать его стандартным? Кроме того, приведенный выше синтаксис является последовательным, если вы не учитываете неоднозначность разбора.
Может кто-нибудь, пожалуйста, просветит меня? Почему стандарт делает это требование?