类型转换 c++, quadmath

Type conversion c++, quadmath

quadmath 库没有太多在线文档,我想使用 __complex128 类型执行两个简单的操作。

第二个问题更重要,因为如果我可以转换它,我可以简单地使用 cout!

编辑:一切都涉及以下问题。如何将 __float128 转换为 double

试试这个:

std::complex<double> x;
__complex128 y;
x.real(__real__ y)
x.imag(__imag__ y)

__float128 转换为 double 不需要任何特殊的东西:

const __float128 x{};
const double y = x;

为了清楚起见(并减少警告),您可能需要 static_cast

__complex128 构建 std::complex<T>also not difficult:

auto bar(__complex128 y)
{
    return std::complex<double>{
        static_cast<double>(__real__ y),
        static_cast<double>(__imag__ y)
    };
}