私の研究ではまだ (SOF で) これに対する答えが得られていませんが、以前にどこかで尋ねられたに違いないと確信しています。
C++ で列挙型を作成し、メッセージ ヘッダーから値を読み取り、それを列挙型の変数に格納したいと考えています。例:
// My defined enum type
enum myNumType_t
{
MY_NUM_UNKNOWN = 0,
MY_NUM1 = 1,
MY_NUM2 = 2,
MY_NUM3 = 3,
MY_NUM4 = 4,
MY_NUM5 = 5,
};
// In the code
int main()
{
myNum_t myNum = MY_NUM_UNKNOWN;
myNum = getMessageNumType(); // returns an int
return 0;
}
したがって、このコードは int を myNum_t に変換できないため、c++ ではコンパイルされません。したがって、キャストすると、myNum = (myNum_t) getMessageNumType();
これはもちろんコンパイルされます。しかし、それは正しいことをしますか? 戻り値が myNum_t の範囲外の場合はどうなりますか? 私が見逃している「ベストプラクティス」はありますか?