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

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;

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

Теги:
templates
function-pointers
member-function-pointers
member-variables

1 ответ

0

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

  • 0
    Я использую cl компилятор Visual Studio 2008 ..

Ещё вопросы

Сообщество Overcoder
Наверх
Меню