【发布时间】:2021-01-03 00:17:45
【问题描述】:
这个三元组,当按原样使用时,会吐出一个指针:
std::stringstream ss;
ss << pair.second ? pair.second->toString() : "null";
std::cout << ss.str() << '\n';
这是一个示例输出:
{
"glossary": 000002B96B321F48
}
但是当我将三元运算符括在括号中时,它可以正常工作并给我 toString() 或“null”的内容。
ss << (pair.second ? pair.second->toString() : "null");
此外,将其扩展为适当的 if/else 也可以修复它:
if (pair.second)
{
ss << pair.second->toString();
}
else
{
ss << "null";
}
发生了什么事?
【问题讨论】: