二进制表达式(';std::ostream';(又称';basic#ostream<;char>;';)和';const char*';)的操作数无效 当尝试用CHIERP编译我的C++代码时(使用CLAN+++),我从终端获得这个输出: example.cpp:102:9: error: invalid operands to binary expression ('std::ostream' (aka 'basic_ostream<char>') and 'const char *') out << "(" << loc.x << ", " << loc.y << ")"; ~~~ ^ ~~~

二进制表达式(';std::ostream';(又称';basic#ostream<;char>;';)和';const char*';)的操作数无效 当尝试用CHIERP编译我的C++代码时(使用CLAN+++),我从终端获得这个输出: example.cpp:102:9: error: invalid operands to binary expression ('std::ostream' (aka 'basic_ostream<char>') and 'const char *') out << "(" << loc.x << ", " << loc.y << ")"; ~~~ ^ ~~~,c++,c++11,clang,cheerp,C++,C++11,Clang,Cheerp,下面是它遇到问题的代码: static std::ostream& operator <<(std::ostream & out, const CornerLoc &loc) { out << "(" << loc.x << ", " << loc.y << ")"; if (loc.type == kCorner) out<<"-corner";

下面是它遇到问题的代码:

static std::ostream& operator <<(std::ostream & out, const CornerLoc &loc)
{
    out << "(" << loc.x << ", " << loc.y << ")";
    if (loc.type == kCorner)
        out<<"-corner";
    if (loc.type == kCornerNorthWest)
        out<<"-cornerNW";
    if (loc.type == kCornerNorthEast)
        out<<"-cornerNE";
    if (loc.type == kCornerSouthWest)
        out<<"-cornerSW";
    if (loc.type == kCornerSouthEast)
        out<<"-cornerSE";
    return out;
}

static std::ostream&operatorFIXED::我刚忘了
#include

我想你的标准库头已经损坏了。@Lingxi我该如何修复它们?只是猜测而已。我不确定。尝试在联机编译器上编译有问题的代码(例如),看看问题是否仍然存在。实际上可能只是
#include
static std::ostream& operator <<(std::ostream & out, const CornerLoc &loc)
{
    out << "(" << loc.x << ", " << loc.y << ")";
    if (loc.type == kCorner)
        out<<"-corner";
    if (loc.type == kCornerNorthWest)
        out<<"-cornerNW";
    if (loc.type == kCornerNorthEast)
        out<<"-cornerNE";
    if (loc.type == kCornerSouthWest)
        out<<"-cornerSW";
    if (loc.type == kCornerSouthEast)
        out<<"-cornerSE";
    return out;
}