C++模板化,静态分配的数组

Dav*_*ter 0 c++ arrays templates allocation

我正在尝试为项目做这样的事......

template <class N> class MyClass { float properties[N]; };

无论如何在C++中实现这一点?

Naw*_*waz 5

你需要什么称为模板参数:

template <size_t N> class MyClass { float properties[N]; };
        //^^^^^^ note this 
Run Code Online (Sandbox Code Playgroud)

现在,您可以实例化此类模板,将任何非负整数值作为模板参数传递.例如,

MyClass<10> c1;  //N=10
MyClass<100> c1; //N=100
Run Code Online (Sandbox Code Playgroud)

您也可以将const表达式传递为:

const size_t size = 200;
MyClass<size>  c2; //N=200
Run Code Online (Sandbox Code Playgroud)