有大佬知道这个问题是怎么回事吗

#include <iostream>
#include <string>
using namespace std;

bool judge(const string &str1) {

    

    for (auto i = str1.begin(); i != str1.end(); i++) {
        if (*i >= 'A' && *i <= 'Z') {
            return true;
        }
        else {
            return false;
        }
    }
}

void judge(string &str1) {

    for (auto i = str1.begin(); i != str1.end(); i++) {
        *i = toupper(*i);
    }
}

int main() {
    string a("Abcd");

    cout << judge(a);  //禁止显示状态错误(活动)    E0349    没有与这些操作数匹配的 "<<" 运算符

}

cout << (judge(a));

judge函数返回值是void啊,void不能通过cout输出。我猜你想做的是:

judge(a);

cout << a;