Q_LIKELY Q_UNLIKELY
コンパイラに分岐予測最適化を提供するためのマクロ。ifの中で使い、trueになりそうなときはQ_LIKELY、falseになりそうなときはQ_UNLIKELYをつかう。Visual Studioコンパイラだと特に何もしないが、gccだと__builtin_expectに展開される。
1 2 3 |
if (Q_UNLIKELY(!get())) { return false; } |
Q_UNREACHABLE
絶対に到達しない場所に記述する。switch文ですべてのenumをcaseに書かないと警告が出る場合にこれを置いておく。
Q_UNUSED
関数の引数で使わないものを書いておくと警告が出なくなる。関数の引数の変数を消してもいい。
Q_ASSERT Q_ASSERT_X
実行時にtrueでなければならない式を記述してデバッグ時にエラーが出ないことを確認する。
_Xの方は警告文をいろいろ書ける。
Q_ASSUME
式がtrueであることをコンパイルに教えて最適化に役立てる。falseを指定すると、Q_UNREACHABLEと同じになる。
qDebug()
デバッグ出力する。