私が書いていなかった古いコードを調べていると、このようなものに気づきました(簡略化)
//switch case on a msg received from a queue,...
//... get_function returns msgtype and ptr
switch(msgtype)
//...
default:
{
MYLOGGER<< "Unknown message" << (*ptr)->some_member_var <<"\r\n";
}
だから私はそれをに変更しようと思った
default:
{
MYLOGGER<< "Unknown message...\r\n";
MYLOGGER<< "..." << (*ptr)->some_member_var << "\r\n";
}
ptrがジャンクの場合、ロギングが始まる前にクラッシュするのを恐れますか?この例では私は厳密ですか?また、一般に、エラーをログに記録するときに間接参照を行わないようにする必要があります。
編集:MYLOGGERに関しては、これで終わるマクロです:オーバーロードされた演算子<<を持つロガークラスは、dtrorでostream flush()を実行するため、endlは必要ありません。