error: C2679

#include <iostream>
//#include <string>

int main()
{
    std::string str = "test";
    std::cout <<str<< std::endl;
    return 0;
}

上述代码报错,error: C2679: 二进制“<<”: 没有找到接受“std::string”类。
iostream 里面包含的是老的string代码(Microsoft Visual Studio 14.0\VC\include) xstring,他的代码并没有重载<<操作符,如下图:

error: C2679
而新的C++ 标准string代码(Microsoft Visual Studio 14.0\VC\include\string) 则重载了<<,如下:
error: C2679

所以必须添加头文件,用最新的标准库string。