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

标签 c++ templates

我正在尝试创建一个 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 的编译错误是间接需要指针操作数('int Test::*' 无效)

最佳答案

尝试

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

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

关于c++ - 如何访问 C++ 类模板中成员参数的指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34346222/

相关文章:

c++ - 错误 : qualifiers dropped in binding reference of type string to initializer of type const string

c++ - boost::asio 在 async_read 中复制输入数据

c++ - std::vector 范围构造函数可以调用显式转换吗?

c++ - 阅读更多 midi 数据

java - 使用 jsp/taglibs 与模板引擎

c++ - std::function 的性能开销是多少?

Scala - 使用 Bounds 理解类定义

c++ - 变量模板的链接器错误

c++11 - 模板方法中可调用对象的最佳类型是什么?

javascript - 检查 Jade mixin 中的参数