2017-10-14 7 views
0

に変換やっ2人の組合私は別の(joint_viewを使用して)その組合に変換したいと思うならば、私は(MSVC2017を使用して)次のコンパイラエラーを取得する:ブーストMPL考えてみましょうjoint_view

1>e:\source\trunk\thirdparty\boost\mpl\clear.hpp(31): error C2504: 'boost::mpl::clear_impl<boost::mpl::aux::joint_view_tag>::apply<Sequence>': base class undefined 
1>  with 
1>  [ 
1>   Sequence=boost::mpl::joint_view<TScalarTypes,TVectorTypes> 
1>  ] 

(...プラス、より多くの明らかに、上記のコードに遡っ)

もう1つ(私はシーケンス上で直接変換を行います)はうまく動作しますので、AFAICTはここで問題となっているjoint_viewに変換を適用する組み合わせです。それでは、joint_viewは '実際の'シーケンスではなく、単に 'ビュー'であるからですか?最初にjoint_viewのコピーを作成してから、そのコピーにトランスフォームを適用することはできますが、これを一度に動作させることはできません。

答えて

0

mtl :: transformがjoint_viewによって生成されたシーケンスを処理できないようです。 joint_viewは、mtl :: transformがサポートしていない「A lazy Forward Sequence」を生成します。

あなたはブーストを使用することができます:: MPL ::、問題を解決するために、以下のようにコピーし

typedef typename boost::mpl::copy<TVectorTypes, boost::mpl::back_inserter<TScalarTypes> >::type TTypes; 
関連する問題