【发布时间】:2015-06-01 15:20:42
【问题描述】:
如果这是重复的,我深表歉意。我环顾四周,发现了类似的问题,但没有一模一样。
如果我像这样实例化一个模板...
MyClass<int[10]> c;
如何编写模板来访问类型和数组大小?我已经尝试了所有我能想到的方法,但我无法获得它。
我的灵感来自于 std::function 模板,它让您可以使用与函数原型类似的语法,例如...
std::function<int(MyClass&)> myfunc;
所以我认为对数组及其大小有类似的东西会很好。我可以使用任何最新的 c++ 功能 (c++ 11/14)。
【问题讨论】:
-
你为什么不用
std::array<int, 10>?太棒了,你应该使用它;-) -
@stefan:嗯,我正在尝试为我的课程添加一些上下文语法糖。它与我使用实际数组无关。
-
该语法是您的类的唯一有效用法,还是一种特殊情况?
-
您可以使用
std::extent和std::remove_extent,而不是编写自己的元函数来提取元素类型和数组大小。
标签: c++ templates c++11 template-meta-programming