c++ - 是否可以从模板参数中提取数组大小?

标签 c++ templates c++11 template-meta-programming

如果这是重复的,我深表歉意。我环顾四周,发现了类似的问题,但没有发现完全像这样的问题。

如果我像这样实例化一个模板...

MyClass<int[10]> c;

我如何编写模板来访问类型和数组大小?我已经尝试了我能想到的所有方法,但我无法获得。

我的灵感来自于 std::function 模板,它让你可以使用与函数原型(prototype)相似的语法,比如......

std::function<int(MyClass&)> myfunc;

所以我认为为数组及其大小提供类似的东西会很好。我可以使用任何最新的 c++ 功能 (c++ 11/14)。

最佳答案

您可以添加如下所示的部分特化:

template <typename T, ptrdiff_t N>
class MyClass<T[N]>
{
};

这是一个 demo .

关于c++ - 是否可以从模板参数中提取数组大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30577228/

相关文章:

c++ - 函数内定义的空指针

c++ - 使用主机上CUDA内核中动态分配的数据

c++ - 专门化后的显式实例化

c++ - 在 main() 的线程中调用对象成员函数

c++ - 如何比较 if 语句中的多个字符串?

c++ - 如何绘制台球 table 口袋 opengl C++

三重嵌套模板参数的 C++ 正确语法

c++ - 自定义 vector 模板 - 字符串

c++ - C++ 中的最新调用

c++ - 为什么延长临时对象的生命周期不会导致中间临时对象的延长?