我有一个模板化课程,主要致力于持有boost:: multi_array
。我试图在初始化类中初始化数组,但我收到一个错误:
template <typename T>
class Hist2D
{
private:
typedef boost::multi_array<T, 2> array_type;
array_type MatrixCount;
public:
Hist2D(int width, int height): array_type MatrixCount(boost::extents[width][height]){};
};
这会出现以下错误:
ctest.cpp: In constructor ‘Hist2D<T>::Hist2D(int, int)’:
ctest.cpp:34:45: error: expected ‘(’ before ‘MatrixCount’
Hist2D(int width, int height): array_type MatrixCount(boost:extents[width][height]){};
^
ctest.cpp:34:45: error: expected ‘{’ before ‘MatrixCount’
这些错误意味着什么?
答案 0 :(得分:3)
这是语法错误。您无需在初始化列表中声明类型。
试试这个:
Hist2D(int width, int height): MatrixCount(boost::extents[width][height]){}
C ++编译错误可能令人困惑。一段时间后你会习惯他们:D