gpt4 book ai didi

c++ - 如何将 boost::multi_array 放入构造函数的初始化列表中?

转载 作者:行者123 更新时间:2023-11-28 00:14:03 25 4
gpt4 key购买 nike

我有一个模板化类,主要用于保存 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’

这些错误是什么意思?

最佳答案

这是语法错误。您不需要在初始化列表中声明类型。

试试这个:

Hist2D(int width, int height): MatrixCount(boost::extents[width][height]){}

C++ 编译错误可能令人困惑。一段时间后你会习惯的:D

关于c++ - 如何将 boost::multi_array 放入构造函数的初始化列表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31465628/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com