Ваш коллега очень непослушный мальчик. Прежде всего обратите внимание, что Visual C ++ 2013 является , а не компилятором C ++ 11, хотя он реализует некоторые стандарты C ++ 11. Примечательно, что constexpr
отсутствует.
Неформально говоря, auto
не не автоматически включает &
, поэтому они существенно изменились
Foo & foo = DoSomething();
до
Foo foo = DoSomething();
Это воплощает опасность ошибочного рефакторинга без проведения адекватных юнит-тестов.
Правильнее всего было оставить код таким, какой он есть. Но если культура в вашей фирме такова, что все новое и блестящее должно войти в проект, тогда лучше всего использовать
auto&& foo = DoSomething();
Чтобы сгенерировать одноразовый набор предупреждений компилятора, почему бы (временно) не удалить конструктор копирования и не попытаться построить проект?:
Foo(const Foo&) = delete;