Функция член базового класса в кач-ве параметра. Ошибка
От: Аноним  
Дата: 19.12.09 02:46
Оценка:
Здравствуйте.

Вот такая проблема:


#include <cstdlib>
#include <iostream>

using namespace std;

struct A {
    template< class T, void(T::*TMethod)(void)>
    static void f( T* obj ){
        (obj->*TMethod)();
    }    
};

struct B {
    void f() {
        cout << "f()" << endl;
    }
};

struct D : B {
};

int main() {
    D d;
    A::f<D,&D::f>(&d);
    return 0;
}


Ошибка:
test.cpp: In function ‘int main()’:
test.cpp:24: error: no matching function for call to ‘A::f(D*)’

Не могу понять, что не так.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.