簡體   English   中英

指向類成員的指針作為模板參數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM