Я столкнулся с запутанным сообщением об ошибке при попытке сделать что-то так же просто, как
std::cout << std::vector<int>{1,2,3};
в котором говорится
cannot bind 'std::ostream {aka std::basic_ostream<char>}' lvalue to 'std::basic_ostream<char>&&'
int main() { std::cout << std::vector<int>{1,2,3}; }
(проверено с использованием gcc-4.8.1 с -std = С++ 11)
SO имеет похожие вопросы, такие как Оператор перегрузки <: не может связывать lvalue с 'std:: basic_ostream <char> &&, который является о некотором определенном пользователем классе с вложенными классами. Существует также работа вокруг принятого ответа на этот вопрос.
Но я не знаю, относится ли это к std::vector
. Может ли кто-нибудь объяснить, почему эта ошибка происходит с std::vector
и как ее интерпретировать?
Спасибо