Получение ошибки "Нет оператора" << ", совпадающего с этими операндами" при попытке передать std:: string в ostream
Я хотел изучать C++, поэтому я принял участие в курсе программирования на C++. В основном это довольно простые вещи, но теперь я пару раз сталкивался с этой странной ситуацией, когда я не могу использовать операнды "<<" для передачи std:: string в ostream, хотя в большинстве случаев я могу это сделать так.
В качестве IDE я использую vs2015, и у меня есть следующий код.
#include "stdafx.h"
#include <iostream>
int main()
{
std::string str = "Foo";
std::cout << str << std::endl;
}
Что происходит, так это то, что операнды '<<' между std:: cout и str перерисовываются, и я получаю сообщение об ошибке, в котором говорится: "no operator" << "соответствует этим операндам. Типы операндов: std:: ostream << std:: строка".
Это происходит довольно случайно и редко, поэтому я не смог выяснить какой-либо тип корреляции между случаями. Одна вещь, которую я заметил, это то, что в том числе <sstream>
чтобы проект избавился от проблемы, но я не думаю, что так и должно быть.
Какие-либо предложения?