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をつけても意味がない。
コメントを残す