用于复杂的标准用户定义文字

Version >= C++ 14

那些复杂的用户文字在 namespace std::literals::complex_literals 中声明,其中 literalscomplex_literals 都是内联命名空间 。使用 using namespace std::literalsusing namespace std::complex_literalsusing namespace std::literals::complex_literals 可以获得对这些运算符的访问。

#include <complex>
#include <iostream>

int main()
{
    using namespace std::literals::complex_literals;
    
    std::complex<double> c = 2.0 + 1i;        // {2.0, 1.}
    std::complex<float> cf = 2.0f + 1if;      // {2.0f, 1.f}
    std::complex<long double> cl = 2.0L + 1il; // {2.0L, 1.L}
    
    std::cout << "abs" << c << " = " << abs(c) << std::endl;   // abs(2,1) = 2.23607
    std::cout << "abs" << cf << " = " << abs(cf) << std::endl; // abs(2,1) = 2.23607
    std::cout << "abs" << cl << " = " << abs(cl) << std::endl; // abs(2,1) = 2.23607
}