0

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

私が間違っていることの手がかりはありますか?

ありがとう!

4

1 に答える 1

0

is_constを使用して修正できました:

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

ありがとう!

于 2012-09-06T02:51:25.970 に答える