Вывод аргументов указателя на ф-цию
От: Аноним  
Дата: 06.12.05 15:49
Оценка:
Здравствуйте,
Захотелось написать примерно такой код:

test_struct
{
template< T1 >
  test( IComInterface * obj, HRESULT ( __stdcall IComInterface ::*method )( T1 ) )
  {
    std::cout << "method returned " << GetResultString( ( obj -> *method ) () );
  }

template< T1, T2 >
  test( IComInterface * obj, HRESULT ( __stdcall IComInterface ::*method )( T1, T2 ) )
  {
    T1 temp1();
    T2 temp2();
    std::cout << "method returned " << GetResultString( ( obj -> *method ) ( temp1, temp2 ) );
  }
}

template< class T1 >
void TestMethod( IComInterface * obj, HRESULT ( __stdcall IComInterface ::*method )( T1 ) )
{
  test_struct().test( obj, method );
}

template< class T1, class T2 >
void TestMethod( IComInterface * obj, HRESULT ( __stdcall IComInterface ::*method )( T1, T2 ) )
{
  test_struct().test( obj, method );
}


VC 7.1 попытался вывести аргументы, но что-то у него не заладилось... Сообщение об ошибке сейчас не скажу, но он сказал что не может покастить указатель на функцию в тип аргумента функции...
Объясните, это я в отпуск хочу, или у него какие-то проблемы?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.