タプルstd::vector
のまたはstd::array
のバリアントを探しています。タプル要素は、たとえば、の場合のようにインターリーブされるのではなく、インターリーブされていない別のメモリ領域に配置されます。std::vector<std::tuple<...>>
この動機は
- アラインメントの制御が向上し、ベクトル最適化のパフォーマンスが向上します。
- OpenGLで低レベルのCPU-GPUデータ転送操作(頂点や色の配列など)をインターフェイスするときに、データ要素を解凍する必要がなくなります。
boost::tuple<>
イテレータは、参照解除されたときにオンザフライで構築して返す必要があります。
このコンテナですべてのSTLメンバー関数を効率的にサポートできるわけではないことを認識しています。たとえば、STLdata()
コンテナメンバー関数は、動的に作成された可変のベクトルコンテナにすべての個別の配列を動的に圧縮し、そのdata()を返す必要があります。
誰かがそのようなテーブルコンテナをすでに構築しましたか?