【发布时间】:2011-06-29 20:34:01
【问题描述】:
我想做如下的事情:
Example(&Class::MemberFunction, this));
//...
template<class T_CLASS>
inline static void Example(void (T_CLASS::*MemberFunctionPointer)(), T_CLASS* InstancePointer)
{
SomeClass<T_CLASS>::Bind<MemberFunctionPointer>(InstancePointer);
}
但我收到错误:*模板参数 'T_MEMBER_FUNCTION' : 'MemberFunctionPointer' : a local variable cannot be used as a non-type argument*
这个问题有什么解决办法吗?我想提供一种更简单的方法来调用“绑定”
谢谢,米尔科
//编辑:
我希望 MemberFunctionPointer 成为非类型模板参数,因为在“绑定”中我再次需要它作为模板参数。 正如您在答案中所写,在我的情况下 MemberFunctionPointer 是一个变量,它的值在编译时是未知的。但是 MemberFunctionPointer 总是指向同一个函数。有没有办法让它保持不变,以便编译器在编译时知道它?
【问题讨论】:
-
请看这个非常相似的问题stackoverflow.com/q/6041570
标签: c++ templates local non-type