1

おやおや、mplライブラリを操作するとき、構文を理解することは当たり前の経験です(前の質問)。2つのmplitteratorを比較するための正しい構文、つまりit != v.end()テストは何ですか?

template<typename T> 
struct get_type_ordinal
{
  rbl_type_ordinal_type operator()()
  {
    typedef typename boost::mpl::find<rbl_type_mpl_vector,T>::type it;
    typedef typename boost::mpl::end<rbl_type_mpl_vector>::type end;

    BOOST_MPL_ASSERT_NOT (( boost::mpl::equal_to< it, end >)); // problem here
    return it::pos::value;
   }
}

アサーションを削除すると、ファンクターはコンパイルされて正常に実行されます。

4

1 に答える 1

2

試してみboost::is_same<>てください、それはトリックを行う必要があります。

于 2011-05-18T13:35:24.670 に答える