我想要做的東西像下面這樣:局部變量作爲非類型模板參數
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」:一個局部變量不能使用作爲非類型參數*
針對此問題的任何解決方案?我想提供一個更簡單的方法來調用「綁定」
謝謝了Mirco
//編輯:
我想MemberFunctionPointer是一個非類型模板參數,因爲在「綁定」我需要再次它作爲模板參數。 正如你在答案中寫的,在我的情況下,MemberFunctionPointer是一個變量,它的值在編譯時是未知的。但MemberFunctionPointer總是指向相同的函數。有沒有一種方法可以讓它保持不變,以便編譯器在編譯時知道它?
請看看這個非常類似的問題http://stackoverflow.com/q/6041570 – sharptooth