错误:预期的构造函数、析构函数、“<”标记之前的类型转换

Posted

技术标签:

【中文标题】错误:预期的构造函数、析构函数、“<”标记之前的类型转换【英文标题】:Error: Expected constructor, destructor, type conversion before '<' token 【发布时间】:2013-12-17 19:22:20 【问题描述】:

代码是

#include <ctime>
#include <iostream>
#include <fstream>
#include <sstream>
#include <cstdlib>
#include <iterator>
#include <queue>
#include <algorithm>
#include <string>
#include <cassert>
#include <cmath>
#include <iomanip>
#include <new>
#include <algorithm>
#include <functional>
#include <vector>

using namespace std;

using std::vector;

    #include <boost/numeric/ublas/matrix.hpp>
    #include <boost/numeric/ublas/io.hpp>
    #include <boost/numeric/ublas/operation.hpp>
#include <boost/numeric/ublas/vector.hpp>

    using namespace boost::numeric::ublas;

    boost::numeric::ublas::matrix<double> A_MATRIX(A_MATRIX_ROWS,A_MATRIX_COLUMNS);
    boost::numeric::ublas::matrix<double> Y_MATRIX(A_MATRIX_ROWS,1);


    vector <double> GPSR_BB(boost::numeric::ublas::matrix<double> &f_Y_MATRIX,boost::numeric::ublas::matrix<double> &f_A_MATRIX,int f_tau,int f_tolA)

vector<double> objective(2);

//sth inside function

return objective;

    

    int main()
        vector<double> objectives(maxiter+2);
        objectives=GPSR_BB(Y_MATRIX,A_MATRIX,tau,tolA);
        return 0;
    

排队

vector <double> GPSR_BB(boost::numeric::ublas::matrix<double> &f_Y_MATRIX,boost::numeric::ublas::matrix<double> &f_A_MATRIX,int f_tau,int f_tolA)

我收到错误

error: expected constructor, destructor, or type conversion before ‘<’ token function

我想,问题是因为矩阵数据类型,来自 boost 库,我必须将其传递给函数,我认为对于我的具体问题没有其他方法可以做。

非常感谢任何帮助。谢谢

【问题讨论】:

一个可能的问题是您拉入了命名空间stdboost::numeric::ublas,它们都有vector。另外,既然你已经拉入了命名空间,为什么还要写下矩阵类的完整类型名称呢?此外,您的代码非常难以阅读。为什么包含这么多? 【参考方案1】:

boost::numeric::ublas 具有向量和命名空间 std。尝试删除 using namespace std 并使用适当的命名空间来引用正确的类型。

【讨论】:

【参考方案2】:

尝试在vector&lt;double&gt; 之间不要有空格

vector<double> GPSR_BB

【讨论】:

以上是关于错误:预期的构造函数、析构函数、“<”标记之前的类型转换的主要内容,如果未能解决你的问题,请参考以下文章

c++ 错误:预期构造函数、析构函数或在“(”标记之前的类型转换

错误:“(”标记之前的预期构造函数、析构函数或类型转换?

OpenCV 预期的构造函数、析构函数或类型转换

错误:“;”之前的预期构造函数、析构函数或类型转换令牌

错误:“。”之前的预期构造函数、析构函数或类型转换令牌 - 了解 fstream

C++ 构造函数错误 - 标记 '<' 之前应为 ')'