- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:enumをintとして扱う必要があるパターンはあるのでしょうか。)
enumをintとして扱う必要があるパターンはあるのでしょうか。
このQ&Aのポイント
- enumをintとして扱う必要があるパターンはあるのでしょうか。よくenumをintとして扱うことがありますが、その利点について知りたいです。
- enumをintとして扱うことは一般的ですが、どのような利点があるのでしょうか。また、enum名を直接使用する場合に問題が発生することがあるのか、疑問です。
- enumをintとして扱う必要性について知りたいです。intとして定義することによる利点や問題があるのか、教えてください。また、enum名を直接使用する場合の問題についても教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
enumをintとして扱う必要があるパターン、 つまり考えられるenumのデメリットですが 例えばenumをヘッダに定義していた場合、そのenumを使う箇所は そのヘッダをincludeしなければなりません。 この状態でenum定義を変更した場合、そのヘッダをインクルードしたソースは コンパイルされることになります。(つまりソースの依存関係が強くなりリビルドに時間がかかります。) 大きいプロジェクトであればフルビルドに1時間以上かかる場合もあるのでトライアンドエラーの障壁になりえます。 ※勿論enumを引数や返り値にすれば、コンパイル時に型チェックができる利点があります。 >// bcc利用時に問題があるのでintに変更しました この情報だけでは推測の域をでませんが、 bccではenumを可能な限りshort型として扱うようにするコンパイルオプションがあるようです。 enumをどう扱うかは統一しないとリンクエラーや動的なライブラリならスタックが破壊される可能性があります。
お礼
ありがとうございます。 確かにinlcludeの依存が発生するというデメリットはありますね。 >bccではenumを可能な限りshort型として扱うようにするコンパイルオプションがあるようです。 >enumをどう扱うかは統一しないとリンクエラーや動的なライブラリならスタックが破壊される可能性があります。 は知りませんでした。 そのあたりは要注意ですね。