这是示例:
template <int n>
class A { };
class B {
public:
int foo() {
return a.n; // error
}
private:
A<10> a;
};
Run Code Online (Sandbox Code Playgroud)
我想获得除模板本身以外的类中实例化类A<10>的非类型模板参数的值,有没有办法做到这一点?还是应该使用其他设计来避免此问题?BA
您不能像这样访问其他类模板参数。另一个类必须公开它,例如:
template <int n>
class A {
public:
static const int num = n;
};
Run Code Online (Sandbox Code Playgroud)
然后,您可以按a.num(或A<10>::num当然)访问它