假设我想处理N_DIMS
维的正方形网格,每个边长为N_RES
元素,这将产生N_ELEMS = std::pow(N_RES, N_DIMS)
个元素。
我需要遵循的实现是非正方形网格的泛化。
template<typename T, size_t... DIMS>
class MeshGrid
{
// ... etc etc
}
例如,一个可能的实例包含三个维度,分别有4、5、6个元素。
MeshGrid<float, 4, 5, 6> mg; // call A
现在我想将其改为类似于以下内容:
template<typename T, size_t RES, size_t... DIMS>
class MeshSquare
{
// ... etc etc
}
保留MeshGrid内部的DIMS逻辑,以便进行运行时调用,如B。
int res = 4, dims = 2
MeshSquare<float, res, ??dims??> // call B
以一个2维的正方形网格为例,每个网格有4个元素,总共有16个元素。
我对自己想做的事情持怀疑态度;我有一种感觉,即可变参数列表必须在编译时处理;上面的B调用是无意义的。
如果可能的话,我的问题是如何扩展dims
以适应B调用。