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*/;
しかし、この方法ではコンパイルに成功しません。それを達成するための他の推奨される方法。