用於複雜的標準使用者定義文字

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
}