【发布时间】:2020-11-05 15:20:03
【问题描述】:
我有一个模板类,我需要使用向量的大小来设置大小。实现这一目标的最佳方法是什么?下面是一个简化版,如果你需要看的话,我会链接到完整的课程。
template<int maxParams>
class ParameterChangeHandler
{
public:
inline ParameterChangeHandler()
{
//Do Stuff
};
//More Inline Methods that use maxparams and paramBitArray
protected:
unsigned char paramBitArray[(((maxParams)+((8) - 1)) & ~((8) - 1)) / 8]
};
int main()
{
std::vector<int> myVectorOfParameters = { 1,2,3,4,5 };
//This is OK
//ParameterChangeHandler<10> paramChangeHandler;
//This is what I want
ParameterChangeHandler<myVectorOfParameters.size()> paramChangeHandler
}
这是针对我正在使用 Wwise SDK 构建的音频应用程序,这是一个链接,指向给我问题的实际类 AkFXParameterChangeHandler
【问题讨论】:
-
这是不可能的,所有模板参数的值必须在编译时知道。你需要以某种方式重新设计它。
-
谢谢,我是这么想的。我只是不确定如何去做。
-
这取决于。看起来你想要一个模板参数,以便能够在你的类中使用一个数组。但是为什么不改为
vector,然后你可以用运行时值初始化大小。 -
把数组变成向量,然后把向量的大小传给构造函数进行初始化。