ХотяКонструктор по умолчанию любопытство
MyClass m();
является классическим Гочей, так как он не объявить переменные м, но функция принимает нулевые аргументы и возвращает MyClass. Тем не менее, я обнаружил, что в Visual Studio следующее заявление создает такую же проблему (это, кажется, это как-то colapses к вышеуказанному заявлению):
MyClass m(MyClass());
Может кто-нибудь объяснить это поведение?
Примечание: более «явная» версия того, что ожидается, делает правильную вещь (т. Е. Вызывает значение по умолчанию, затем конструктор перемещения).
MyClass m(std::move(MyClass()));