Ошибка указателя Fn шаблона C2146: синтаксическая ошибка: отсутствует ‘;’ перед идентификатором

Я столкнулся с проблемой с шаблонным указателем на функцию-член. Код, как показано ниже.

#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;

В качестве переменной-члена я получаю ту же ошибку, что и выше.

0

Решение

Я не знаю, какой компилятор вы используете. Я скомпилировал его с помощью GCC. Предполагается, что «typename» ставится перед определением m_PtrToCapturer.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]