• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:enumをintとして扱う必要があるパターンはあるのでしょうか。)

enumをintとして扱う必要があるパターンはあるのでしょうか。

このQ&Aのポイント
  • enumをintとして扱う必要があるパターンはあるのでしょうか。よくenumをintとして扱うことがありますが、その利点について知りたいです。
  • enumをintとして扱うことは一般的ですが、どのような利点があるのでしょうか。また、enum名を直接使用する場合に問題が発生することがあるのか、疑問です。
  • enumをintとして扱う必要性について知りたいです。intとして定義することによる利点や問題があるのか、教えてください。また、enum名を直接使用する場合の問題についても教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.1

enumをintとして扱う必要があるパターン、 つまり考えられるenumのデメリットですが 例えばenumをヘッダに定義していた場合、そのenumを使う箇所は そのヘッダをincludeしなければなりません。 この状態でenum定義を変更した場合、そのヘッダをインクルードしたソースは コンパイルされることになります。(つまりソースの依存関係が強くなりリビルドに時間がかかります。) 大きいプロジェクトであればフルビルドに1時間以上かかる場合もあるのでトライアンドエラーの障壁になりえます。 ※勿論enumを引数や返り値にすれば、コンパイル時に型チェックができる利点があります。 >// bcc利用時に問題があるのでintに変更しました この情報だけでは推測の域をでませんが、 bccではenumを可能な限りshort型として扱うようにするコンパイルオプションがあるようです。 enumをどう扱うかは統一しないとリンクエラーや動的なライブラリならスタックが破壊される可能性があります。

qwertfk
質問者

お礼

ありがとうございます。 確かにinlcludeの依存が発生するというデメリットはありますね。 >bccではenumを可能な限りshort型として扱うようにするコンパイルオプションがあるようです。 >enumをどう扱うかは統一しないとリンクエラーや動的なライブラリならスタックが破壊される可能性があります。 は知りませんでした。 そのあたりは要注意ですね。

関連するQ&A