calling convention и шаблонная функция
От: Sashaka Россия  
Дата: 05.09.07 17:07
Оценка:
есть код:


typedef unsigned (__stdcall* Func)(void*);

void foo(Func f)
{ }

template<class T, unsigned (T::*p)() >
unsigned __stdcall wrp(void*)
{
  return 0;
}

struct test
{
      test(){ doit(); }
    
      unsigned f() {return 0;}
    
      void doit()
    {
        foo(wrp<test,&test::f>); //***C2664
    }
};
test t;


MSVC 6.0 на отмеченной строке выдает C2664: cannot convert parameter 1 from 'unsigned int (void *)' to 'unsigned int (__stdcall *)(void *)'

MSVC 2005 компилирует. Очередной баг шестерки, можно как-то пофиксить?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.