Re: boost::function_types::parameter_types и msvc
От: Tilir Россия http://tilir.livejournal.com
Дата: 30.08.14 13:11
Оценка: 4 (1)
Здравствуйте, enji, Вы писали:

E>Это у меня msvc слишком древний? Или есть какой-то криминал?

E>спасибо!

gcc 4.8.2 с опцией -std=c++11 все норм, так что обновляйте компилятор.
boost::function_types::parameter_types и msvc
От: enji  
Дата: 28.08.14 06:40
Оценка:
Вот такое приводит к ошибке на msvc2010
#include <boost/function.hpp>
#include <boost/function_types/parameter_types.hpp>
#include <boost/mpl/at.hpp>

template<class Func>
  struct MsgT {
    typedef typename boost::function_types::parameter_types<decltype(&Func::operator())>::type paramTypes;
    typedef typename boost::mpl::at<paramTypes, boost::mpl::int_<1> >::type Arg0;
  };


error C2146: syntax error : missing ';' before identifier 'paramTypes'

причем даже без использования MsgT.

а вот такое

template<class Func>
void g(Func f) {
  typedef typename boost::function_types::parameter_types<decltype(&Func::operator())>::type paramTypes;
  typedef typename boost::mpl::at<paramTypes, boost::mpl::int_<1> >::type Arg0;
}


вполне успешно компилируется.

Это у меня msvc слишком древний? Или есть какой-то криминал?

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