void f(std::string &i) {}
int main()
{
f(std::string());
}
Передаем lvalue-ссылке rvalue значение, но VS проблем не видит. GCC сразу выкидывает ошибку.
Причём для POD всё работает правильно, и выкидывает ошибки, к примеру аналогичный код с int VS уже не пропускает.
Как настроить нормальную проверку ошибок?