如何修复Werror=parentheses(建议在赋值周围使用括号)错误?
我有一行代码可以同时执行赋值和条件。我可以将它分成两行,但我只是对抛出的错误消息感到好奇。
if ( parameters->__size = m_Elements.size() )
得到这个错误:建议在赋值周围使用括号作为真值 [-Werror=parentheses]
我试过:
if ( (parameters->__size) = (m_Elements.size()) )
错误不会消失。但我觉得我已经完成了我被提示做的事情,并在作业周围添加了括号。为什么错误没有消失?我错过了什么?
回答
为了让编译器相信赋值确实是您想要的,您需要将整个表达式括在括号中,如下所示:
if ( ( parameters->__size = m_Elements.size() ) )
//...
如果没有这个,编译器会认为您可能犯了错误,使用赋值 ( =) 而不是比较 ( ==) 运算符。
THE END
二维码