C++17コーディングTIPS

C++17環境におけるTIPS

  • 継承する予定のないクラスにはfinalをつける
  • 相対パスは使わない
  • const定数は可能な限りconstexprに変更
    特にクラス内定数は、
    static constexpr 型名 定数名{定数値};
    で定義する。
  • 参照引数、参照戻り値にはconstが付けられないか検討する
  • 継承するクラスでは、親クラスのデストラクタにvirtualをつける。
    ※virtualをつけないと、親クラスのポインタに子クラスを格納しているケースにおいて、親クラスのポインタをdeleteしても親クラスのデストラクタしか呼ばれないため。
    詳細:https://www.yunabe.jp/docs/cpp_virtual_destructor.html
    良く忘れるので別記事にした:https://www.taperium.com/wordpress/tech/15785.html
  • 長い型に別名をつける際は、typedefの代わりにエイリアス宣言(using)を使うべき
    using 別名 = 型名;
  • 長い名前空間に別名をつける際は、名前空間エイリアスを使うべき
    namespace 別名 = 名前空間名;
  • enumよりもenum classを使うべきだが、限定されたスコープではenumを使って、明示的な型変換を避けるというTIPSもある。
  • sprintf_sといった、char型配列を使った文字列操作は極力避け、std::stringを使った文字列操作を使う
  • nemespaceの終了時の「}」の後にセミコロンは不要。
  • sprintf、sprintf_sの代替として、std::format、std::format_to、std::format_to_nの使用を検討すべき(C++20より)
  • 関数の返却値に不要なconstを付けない。例えば、boolやintの戻り値にconstをつけても意味がない。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です