0

我面临模板化成员函数指针的问题。代码如下所示。

#include <String>
#include <iostream>
template<typename T>
struct method_ptr
{
    typedef void (T::*Function)(std::string&);
};

template <class T>
class EventHandler
{
private:
    method_ptr<T>::Function m_PtrToCapturer;
};

e:\EventHandler.h(13) :

error C2146: syntax error : missing ';' before identifier 'm_PtrToCapturer'

我正面临这个错误。

即使我使用

method_ptr<EventHandler>::Function m_PtrToCapturer;

作为成员变量,我得到与上面相同的错误。

4

1 回答 1

0

不知道你用的是哪个编译器。我使用 GCC 编译它。它建议将“typename”放在 m_PtrToCapturer 的定义之前。

于 2014-02-19T17:51:11.620 回答