我想知道在 C++ 中定义复杂常量“i”的“最佳实践”是什么。
我知道“ #define
vs const
in C++”这个问题已经被问过很多次了,一般的答案是最好使用const.
但是,我认为使用#define
而不是const
定义数学常数(例如“i”或“pi”)是有意义的,因为我们不认为它们是变量,而是“绝对常数”(在公认的在这里回答,可以阅读:“用 const 限定符定义的常量最好被认为是不可修改的 变量。”)。另外,我看到在math.h
库中,常量是这样定义的,例如#define M_E 2.71828182845904523536028747135266250 /* e */
.
所以我想知道,C++ 程序员通常如何定义复杂常量 i?
最后,我当前的代码有一个小问题#define I std::complex<double>(0.0, 1.0)
:预编译会导致与我使用的 Qt 库发生名称冲突(只要我启用 C++11 支持)。