繁体   English   中英

如何在C ++类模板中访问指向成员参数的指针?

[英]How to access pointer to member parameter in C++ class template?

我正在尝试创建一个C ++类模板,该模板利用指向成员参数的指针,但是编译失败。 如何从模板中访问指向成员参数的指针?

class Base {
public:
  int foo;
  int bar;
};

template<int Base::* T>
class Derived : public Base {
public:
  int Get() { return *T; }  <--- Does not work
};

Derived<&Base::foo> test;
printf("Value = %i\n", test.Get());

来自Clang的编译错误是indirection requires pointer operand ('int Test::*' invalid)

尝试

int Get() { return this->*T; }

.*->*是用于取消引用成员指针的运算符。

return this->*T;

(为什么T ?这不是一种类型。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM