Jon*_*ing 29 c++ templates pointers member
是否可以使用非类型模板参数,它实际上是指向类成员的指针?我想要做的是如下:
struct Person {
Dog dog;
};
template <?? ptr>
struct Strange {
// ...
};
typedef Strange<&Person::dog> weird;
Run Code Online (Sandbox Code Playgroud)
到目前为止,我的工作让我相信没有任何类似的可能,但我很好奇是否有人可以说不然.
ham*_*mar 44
从标准:
非类型模板参数应具有以下之一(可选的cv-quali fi ed)类型:
- 积分或枚举类型,
- 指向对象或指向函数的指针,
- 引用对象或引用函数,
- 指向成员的指针.
所以这是允许的,似乎可以这样工作g++
:
template <Dog Person::*ptr>
struct Strange { ... };
Run Code Online (Sandbox Code Playgroud)