当前位置:  开发笔记 > 编程语言 > 正文

将std :: complex <double>转换为__complex128

如何解决《将std::complex<double>转换为__complex128》经验,为你挑选了0个好方法。

我正在尝试在GCC中使用quadmath库.我有一个复杂的双值我想要转换成相应的四精度复数,__complex128.以下是最小(非)工作示例:

#include 
#include 
#include 
using namespace std::complex_literals;

int main(){
   std::complex x = 1 + 2i;
   std::printf("x = %5.5g + %5.5g\n", x.real(), x.imag()); 
   __complex128 y = 2+2i;
   y = x;
  return 0;
}

当我尝试编译此代码时

 g++ test.cpp -lquadmath -o test

我收到以下错误:

test.cpp:10:6: error: cannot convert 'std::complex' to '__complex128 {aka __complex__ __float128}' in assignment
y = x;

如果我尝试用显式类型转换替换赋值行,

y = (__complex128) x;

我得到了类似的错误

test.cpp:10:21: error: invalid cast from type 'std::complex' to type '__complex128 {aka __complex__ __float128}'
y = (__complex128) x;

如何在这两种类型之间进行转换?

推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有