zoukankan      html  css  js  c++  java
  • complex<double>编译报错

    好久没做事情,也就没什么内容可更新的。这两天开始做事情了,问题就不断地出现了,就连使用标准的complex类都出问题。先说说问题吧。

    xxxx.cpp: In member function ‘void xxxx::xxxxxxxx()’:
    xxxx.cpp:
    100: error: ISO C++ forbids declaration of ‘type name’ with no type
    xxxx.cpp:
    100: error: expected primary-expression before ‘double
    xxxx.cpp:
    100: error: expected ‘;’ before ‘double
    make:
    *** [mdqr.o] Error 1

    编译的时候报错,其实那一行就是申请一块double类型复数的数组内存,

    // xxxx.cpp
    #include <complex>
    using std::complex;
    ...
    // complex<double>* eig;
    eig = new complex<double>[N]; // this is line 100

    头文件和命名空间都使用了的阿,而且在头文件类中声明 complex<double>* eig的时候还没有报错。写一个最简单的例子,测试complex的使用。如下,

    #include <iostream>
    #include
    <complex>
    using std::complex;
    using std::cout;
    using std::endl;

    int main(){
    complex
    <double>* eig = new complex<double>[3];
    eig[
    0] = complex<double>(1,2);
    cout
    << eig[0] << endl;
    return 0;
    }

    编译通过,运行结果正确。到底是是为什么xxxx.cpp里面会出现问题呢?

    后来同学建议使用typedef complex<double> dcmplx_t;改了之后的代码如下,

    // xxxx.cpp
    #include <complex>
    using std::complex;
    typedef complex
    <double> dcmplx_t;
    ...
    // dcmplx_t* eig;
    eig = new dcmplx_t[N];

    这样就可以编译了,结果也是正确的。但还是没找到之前错误的原因。

    在ubuntu10.04上编译的,gcc-g++版本4.4.3, 程序中使用了LAPACKE库。

    那就先这样了,希望知道原因的能帮忙解释下。

  • 相关阅读:
    redis的坑
    引入easyui的404问题
    添加 @ResponseBody出现错误的问题
    星期,时间
    activiti的坑
    使用shiro遇到的问题
    IS应用程序池的查看与配置【转载】
    JS判断值是否是数字
    如何在EJS中将变量呈现为HTML?
    My97DatePicker日期控件的下载及使用方法
  • 原文地址:https://www.cnblogs.com/Frandy/p/double_complex.html
Copyright © 2011-2022 走看看