мы можем использовать тип MemberFunction в качестве параметра шаблона? - PullRequest
2 голосов
/ 17 ноября 2011

если есть class T{ void M() };, я хочу иметь шаблонный класс, который может использовать T::M в качестве параметра шаблона.скажи что-то вроде этого:

T t;
TUser<T::M> user(t);

это возможно?

1 Ответ

5 голосов
/ 17 ноября 2011

Да, это возможно:

template< typename T, void (T::*M)() >
struct something
{
    void somewhere( T* obj )
    {
        (obj->*M)();
    }
};

и используется так:

T t;
something< T, &T::M > user;
user.somewhere( &t );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...