Я столкнулся с проблемой с шаблонным указателем на функцию-член. Код, как показано ниже.
#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;
В качестве переменной-члена я получаю ту же ошибку, что и выше.
Я не знаю, какой компилятор вы используете. Я скомпилировал его с помощью GCC. Предполагается, что «typename» ставится перед определением m_PtrToCapturer.
Других решений пока нет …