[英]error: no type named 'extents' in namespace 'boost'
我正在嘗試使用 boost multi_array,它在我的主驅動程序代碼中工作,但是當我嘗試在我的 header 文件中使用它時,它給了我以下錯誤:
error: no type named 'extents' in namespace 'boost'
主文件
#include <boost/multi_array.hpp>
int main()
{
boost::multi_array<double, 3> A(boost::extents[2][2][2]);
return 0;
}
以下作品
c++ -I /usr/local/include/ main.cpp
./a.out
但是,使用 header 文件不會。
my_header.hpp
#include <boost/multi_array.hpp>
my_class
{
private:
boost::multi_array<double, 3> A(boost::extents[2][2][2]);
public:
my_class();
};
my_header.cpp
#include "my_header.hpp"
#include <iostream>
my_class::my_class()
{
std::cout << "Test" << std::endl;
}
IE
c++ -I /usr/local/include/ -c my_header.cpp
給出:
./my_header.hpp:6:42: error: no type named 'extents' in namespace 'boost'
錯誤消息令人困惑,但實際上您的語法不正確。 嘗試這個
class my_class
{
private:
boost::multi_array<double, 3> A;
public:
my_class() : A(boost::extents[2][2][2]) {}
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.