gpt4 book ai didi

c++ - 估计函数参数数组的维度

转载 作者:行者123 更新时间:2023-11-30 02:24:39 25 4
gpt4 key购买 nike

理论上,类型应该在编译时已知,编译器也知道维度。目前,我有一个模板函数,它将矩阵的维度作为模板参数。我可以通过估计 constexpr 中的维度或通过模板函数以某种方式避免这种情况吗?

struct cont {};
void ffd<3>::run(cont mat[3][3][3])

在理解中,我想避免声明 rows 参数。

template<uint8_t rows>
struct ffd {
template<class T>
static float run(const T &mat) {
// recursion over the rows in mat
}
};

最佳答案

您要搜索的是std::extent :

template< class T, unsigned N = 0>
struct extent;

哪个

If T is an array type, provides the member constant value equal to the number of elements along the Nth dimension of the array, if N is in [0, std::rank::value)


例如,对于

float a[10][11][12];

当调用 run(a) 时:

template<class T>
float run(const T &mat)
{
std::extent<T, 0>::value; // 10
std::extent<T, 1>::value; // 11
std::extent<T, 2>::value; // 12

}

关于c++ - 估计函数参数数组的维度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45165136/

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