可以访问模板“type”,例如在std
中std::vector<int>::size_type
对于作为模板参数传递的对象,是否可以使用相同的东西? 例如:
template<int i>
class A {
//?
};
A<3> instance;
int number = instance::???? //<--- assigns 3 to number
是否有可能在运行时再次传入对象类型中的3?不在A类中创建特定成员(这会增加对象的大小)
感谢
答案 0 :(得分:5)
变量的类型在编译时是编译器已知的,只需要让它放弃即可。
template<int i>
int get(const A<i> & instance)
{
return i;
}
答案 1 :(得分:2)
template<int i>
class A {
public:
enum { number = i };
};
int main() {
A<3> instance;
std::cout << instance.number;
return 0;
}