2
我已经阅读了许多有类似问题的问题,但大多数时候他们归结为使用函数指针而不是方法指针的人,或者省略类范围当创建指针实例时。不过我做的那些都(我想...):指向模板方法的指针给出了<未解析的重载函数类型>)
class Test
{
public:
Test() { mFuncPtrs.insert(10, &Test::Func<int>); } // Error!
template <class T>
void Func() {}
private:
typedef void (Test::*FuncPtr)();
std::map<int, FuncPtr> mFuncPtrs;
};
但是这给:
error: no matching function for call to ‘std::map<int, void (Test::*)(), std::less<int>, std::allocator<std::pair<const int, void (Test::*)()> > >::insert(int, <unresolved overloaded function type>)’
但我是明确与模板类型,提供的全部范围该方法,并且Func()
没有重载!如果它有什么区别,我使用g ++ v4.1.2。
+1好上帝......这就是当你使用Qt太久会发生什么。谢谢! – cmannett85