用于复杂的标准用户定义文字
Version >= C++ 14
那些复杂的用户文字在 namespace
std::literals::complex_literals
中声明,其中 literals
和 complex_literals
都是内联命名空间 。使用 using namespace std::literals
,using namespace std::complex_literals
和 using 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
}