Похоже баг в VS 2005
От: wander  
Дата: 23.12.09 11:25
Оценка:
class C
{
public:
    template <typename T>
    C(int (T::*func)(char const*, const int));

    C(int (*func)(char const*, const int));
};

struct Test
{
    int foo(char const*, const int);
};

int foo(char const*, const int);

int main(int argc, char * argv[])
{
    C c(&Test::foo);

    return 0;
}


Из-за выделенного в коде не компилируется с ошибкой:

error C2664: 'C::C(int (__cdecl *)(const char *,const int))' : cannot convert parameter 1 from 'int (__thiscall Test::* )(const char *,const int)' to 'int (__cdecl *)(const char *,const int)'

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