簡體   English   中英

錯誤:命名空間“boost”中沒有名為“extents”的類型

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM