Ошибка компиляции с boost :: mpl :: if_

Я пытаюсь контролировать константность некоторого типа указателя на основе константности некоторого типа параметра шаблона, используя boost :: mpl. Вот моя попытка:

template<typename T>
struct iter {
typedef typename boost::mpl::if_<boost::is_same<T, const list>, const sexpr *, sexpr *>::type pointer;
};

Однако компилятор отвергает это высказывание:

sexpr.h:154: error: ISO C++ forbids declaration of `type name' with no type
sexpr.h:154: error: template argument 2 is invalid
sexpr.h:154: error: template argument 1 is invalid
sexpr.h:154: error: `type' does not name a type

Любая подсказка, что я делаю не так?

Спасибо!

0

Решение

Я смог это исправить используя is_const:

typedef typename boost::mpl::if_<boost::is_const<T>, const sexpr *, sexpr *>::type pointer;

Спасибо!

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector