Re: указатель на мембер в избранное  новое всё   подписка   модер. 
От: zaufi 
Дата: 10.08.06 08:01
Здравствуйте, night beast, Вы писали:

NB>Недавно столкнулся с такой непонятной штукой.


NB>Указатель на мембер-функцию не является указателем.


NB>
NB>#include <iostream>

NB>#define print(msg) std::cout << msg << std::endl;

NB>template<typename T>
NB>struct is_pointer {
NB>    static const int value=0;
NB>};

NB>template<typename T>
NB>struct is_pointer<T*> {
NB>    static const int value=1;
NB>};

template<typename R, typename C>
struct is_pointer<R (C::*)()> {
    static const int value=1;
};

NB>int main (int argv, char * args[] ) {

NB>    std::cout << is_pointer<int (test::*)(void) >::value << std::endl;
NB>    return 0;
NB>}
NB>


добавь выделенную специализацию...
в общем случае нада заспециализироваться для функций с 1,2,3,...,N параметрами...