2016-09-18 29 views
0

std::listまたはstd::vectorにEigen配列のコレクションを格納したいとします。Eigen配列のリストを格納する

私の配列には、Array<Scalar, 1, Dynamic>Array<Scalar, Dynamic, Dynamic>のような種類がありますので、どのテンプレート引数を指定するかわからないstd::list

アイデア:

  • すべてstd::list<Array<Scalar, Dynamic, Dynamic>>としてDynamicとストアにキャストが、これは不要なコピー
  • boost::variantのように感じていますか?

エイゲンにはあまり慣れていない人にとっては、Dynamic-1を意味します。

より文脈については、こちらをご覧ください:What's the right type for a join_rows() function?

答えて

1

ArrayXfArrayXXdArray3i、などはすべての異なる種類があります。 したがって、あなたの質問には次のようなものがあります。異なるタイプを可能にするSTLコンテナがありますか?その短い答えは次のとおりです:No. それは長い答えです:いいえ、でも...

代替手段があります。あなたが指摘したように、/vectorboost::variant(すべてのタイプを明示的にリストする)またはboost::any(事実上すべてのタイプを許可する)を使用することができます。また、使用するたびにlist/vector<void*>static_castを使用することもできます(個人的には私の好みのオプションではありません)。

+1

申し訳ありませんが、脳のおなら。一定。 –

+0

私の質問にはタイプミスがありましたが、実際には同じスカラータイプを使用しています – user357269

+0

@ user357269同じスカラータイプでも、 'Array'は異なるタイプです。 –

関連する問題