[英]Pointer to class member as template parameter
是否可以使用非類型模板參數,它實際上是指向類成員的指針? 我想要做的是如下:
struct Person {
Dog dog;
};
template <?? ptr>
struct Strange {
// ...
};
typedef Strange<&Person::dog> weird;
到目前為止,我的工作讓我相信沒有任何類似的可能,但我很好奇是否有人可以說不然。
從標准:
非類型模板參數應具有以下之一(可選的cv-quali fi ed)類型:
- 積分或枚舉類型,
- 指向對象或指向函數的指針,
- 引用對象或引用函數,
- 指向成員的指針。
所以這是允許的,似乎在這樣的g++
上工作:
template <Dog Person::*ptr>
struct Strange { ... };
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.