Я пытаюсь контролировать константность некоторого типа указателя на основе константности некоторого типа параметра шаблона, используя 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
Любая подсказка, что я делаю не так?
Спасибо!
Я смог это исправить используя is_const:
typedef typename boost::mpl::if_<boost::is_const<T>, const sexpr *, sexpr *>::type pointer;
Спасибо!
Других решений пока нет …