2015-05-27 3 views
-2

Может кто-нибудь объяснить мне, почему в VC++ 12 строка & s = строка ("this"); работает, но не int & d = int (10); какие операторы вызываются при инициализации ссылки не const.Ссылка на Integer и String

Спасибо.

ответ

2

False Помещение: string &s = string("this"); является не действительный C++. Ссылки Lvalue не могут связываться с rvalues.

+0

ОК, вот почему я попросил, должен улучшить вопрос. Он компилируется для меня в компиляторе VC++ 12. Я хотел бы знать, почему? –

+0

@code_not_yet_complete: Поскольку VC++ не является компилятором C++, но является корнем всего зла :-) Мне очень жаль вашу потерю. Если вам нравится быть конкурентоспособным на рынке (и нанимаемым) на C++, я рекомендую всегда перекрестно проверять ваш код вторым компилятором, например. Clang или GCC. –

+1

Если нестандартное расширение делает VC++ не компилятором C++, то нет компиляторов C++. –