我想知道在 C++ 中定义复杂常量“i”的“最佳实践”是什么。
我知道“ #definevs constin 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 支持)。