当我将条件运算符值的结果传递给二元运算符'<<'时,我收到以下错误 我看到了在条件运算符上使用括号的建议,因为它的优先级低于'<<'但它仍然无效。
错误:
错误:类型'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;'
答案 0 :(得分:2)
看起来你可能在某个地方有一个错位的括号,因为编译器正在尝试
("False" << ", ")
即。将char[3]
流式传输到char[6]
,而不是ostringstream