C++ で複雑な定数 "i" を定義するための "ベスト プラクティス" とは何か疑問に思っています。
#define
「 vs const
in C++」という質問が何度も出されていることを知っています。一般的な答えは、使用するのが最善であるということです。const.
ただし、数学定数 (「i」や「pi」など) を変数#define
としてではなく「絶対定数」(受け入れられたここで答えてください。「const修飾子で定義された定数は、変更不可能な変数と考えるのが最善です。」)。また、ライブラリでは、定数がこのように定義されていることがわかります。const
math.h
#define M_E 2.71828182845904523536028747135266250 /* e */
C++ プログラマーは通常、複雑な定数 i をどのように定義するのでしょうか?
最後に、現在のコードに小さな問題があります#define I std::complex<double>(0.0, 1.0)
。プリコンパイルにより、使用している Qt ライブラリと名前が競合します (C++11 サポートを有効にするとすぐに)。