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库。

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

  • 相关阅读:
    Sql Server 2008卸载后再次安装一直报错
    listbox 报错 Cannot have multiple items selected when the SelectionMode is Single.
    Sql Server 2008修改Sa密码
    学习正则表达式
    Sql Server 查询第30条数据到第40条记录数
    Sql Server 复制表
    Sql 常见面试题
    Sql Server 简单查询 异步服务器更新语句
    jQuery stop()用法以及案例展示
    CSS3打造不断旋转的CD封面
  • 原文地址:https://www.cnblogs.com/Frandy/p/double_complex.html
Copyright © 2011-2022 走看看