我想在C++中聲明模板函數指針。成員函數指針內的模板類給出錯誤:必須是類或命名空間後跟'::'
template <class T>
class MyClass
{
public:
typedef const unsigned char* (T::*MyTemplatedEvent)(unsigned long &myParameter);
};
,但由於某種原因,我不斷收到此錯誤:
'T': must be a class or namespace when followed by '::'
有人能告訴我在做什麼錯?
編譯器應該知道T是一個類。它是這麼說的上面的MyClass的聲明...
我認爲你需要在'T ::'之前的'typename'。讓我檢查一下。 – chris
@chris:不在這種情況下。 – Puppy
此外,成員函數指針是不好的。只需使用'std :: function',你就不會有問題。 – Puppy