二进制'operator<<' 'const char [6]'和'const char [3]'类型的无效操作数

invalid operands of types 'const char [6]' and 'const char [3]' to binary 'operator<<'

本文关键字:char const lt 无效 操作数 类型 二进制 operator      更新时间:2023-10-16

当我将条件运算符值的结果传递给二进制运算符'<lt;'我看到了在条件运算符上使用括号的建议,因为它的优先级低于'<lt;'但它仍然不起作用。

错误:

错误:类型为"const char[6]"answers"const char[3]"的操作数无效到二进制运算符<lt;'

代码:

void writeToDb(char* msg, bool doUpdate, bool doCommit)
{
ostringstream inputStr;
inputStr << "DoUpdate=" << (doUpdate?"True":"False") << ", "
         << "DoCommit=" << (doCommit?"True":"False");
}

请建议我在这里做错了什么

代码:

int
Tracer::writeLog(
    const TxnId & txnId,
    string         termination,
    int            logFlagsMask,
    bool           doUpdate,
    bool           doCommit
)
{
  ostringstream inputStr;
  inputStr << "Txn=" << txnId.display() << ", Termination=" << termination << ", "
           << "LogFlagsMask=" << logFlagsMask << ", "
           << "DoUpdate=" << (doUpdate?"True":"False") << ", " // this is line 520 in my src file.
           << "DoCommit=" << (doCommit?"True":"False");
}

错误:

Tracer.cc:520:错误:类型为"const-char[6]"和的操作数无效"const char[3]"到binary"运算符<lt;'

看起来您可能在某个地方放错了括号,因为编译器正在尝试执行

("False" << ", ")

即将char[3]流式传输到char[6]而不是ostringstream