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

时间:2014-09-13 08:26:06

标签: c++

当我将条件运算符值的结果传递给二元运算符'<<'时,我收到以下错误 我看到了在条件运算符上使用括号的建议,因为它的优先级低于'<<'但它仍然无效。

错误:

  

错误:类型'const char [6]'和'const char [3]'的操作数无效   二进制'运算符<<'

代码:

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]'到二元'运算符&lt;&lt;'

1 个答案:

答案 0 :(得分:2)

看起来你可能在某个地方有一个错位的括号,因为编译器正在尝试

("False" << ", ")

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