Задать вопрос
Daniro_San
@Daniro_San
Программист

Почему VS 2015 неправильно воспринимает l-value ссылки?

void f(std::string &i) {}

int main()
{
    f(std::string());
}

Передаем lvalue-ссылке rvalue значение, но VS проблем не видит. GCC сразу выкидывает ошибку.
Причём для POD всё работает правильно, и выкидывает ошибки, к примеру аналогичный код с int VS уже не пропускает.
Как настроить нормальную проверку ошибок?
  • Вопрос задан
  • 253 просмотра
Подписаться 1 Оценить 7 комментариев
Решения вопроса 2
maaGames
@maaGames
Погроммирую программы
VS разрешает выстрелить в ногу, если вам того хочется.
1. Не пишите так, если вам это было не нужно (экономили строчку кода, да?)
2. Передавайте по константной ссылке, тогда никаких проблем не будет и в GCC.
Ответ написан
TrueBers
@TrueBers
Гуглю за еду
Кто ж мешает отключить расширения компилятора, и всё будет по стандарту?
Либо константной делайте ссылку.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы