请帮助我找出在 Linux 环境中使用此语句时遇到的错误的原因。
p_pAphErrorMessage->getSvc()?l_AphUpdateMessage->setSvc(p_pAphErrorMessage->getSvc()):0;
p_pAphErrorMessage->getObj()?l_AphUpdateMessage->setObj(p_pAphErrorMessage->getObj()):0;
此代码在 Windows 中成功编译,但在 Linux 环境中出现错误。
src/aph.cpp:7320: error: âl_AphUpdateMessage->AphMessage::setSvc(((AphUpdateMessage*)p_pAphErrorMessage)->AphUpdateMessage::<anonymous>.AphFidValuesMessage::<anonymous>.AphMessage::getSvc())â has type âvoidâ and is not a throw-expression
src/aph.cpp:7321: error: âl_AphUpdateMessage->AphMessage::setObj(((AphUpdateMessage*)p_pAphErrorMessage)->AphUpdateMessage::<anonymous>.AphFidValuesMessage::<anonymous>.AphMessage::getObj())â has type âvoidâ and is not a throw-expression
我对此进行了一些调查,并怀疑返回 0;可能是它的原因。我们能否以这种方式使用条件运算符,仅将其用于 if not for else,例如,
c= a?a:/*DO NOTHING*/;
但是,这样我在编译方面没有取得任何成功。任何其他推荐的方法来实现它。