我正在尝试创建一个 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/