我目前正在处理复数。我需要一些东西来代表虚数单位。一种方法是定义一个变量
std::complex<double> imaginary_unit{0, 1};
但是,我发现有一个内置的虚数单位i。例如,在此处的问题中讨论了该单元。
建议的解决方案如下:
#include <complex>
using namespace std::complex_literals;
然后使用如下常量i:
std::complex<double> z1 = 1i * 1i;
我被教导这using namespace是不好的风格,并且会给使用我的标题的人带来问题。我试图以详细的方式访问这个内置常量i,但到目前为止我还没有成功。下面是两个失败的例子:
// error: namespace std::literals::complex_literals has no member i
std::literals::complex_literals::i
// error: more than one instance of overloaded function
std::literals::complex_literals::operator""i(3.0)
如何在i不定义自己的i或的情况下访问常量using namespace?