2017-03-15 5 views
1

私は、C++クラスと従来のCコードの中で動作するクラスを作成しています。 私は多くのコードを単純化するためにboost_arrayを使用しています。このmult_arrayは、そのように宣言されています。しかし、私は私のmulti_arrayがである boost multi_arrayをそのネイティブ配列型に変換する

void function(float param[ROWS][COLS]); 

に似た署名を持っている従来の関数に私のmulti_arrayを渡す必要がある問題に

using Array = boost::multi_array<float,2> 

実行していますサイズはROWSとCOLSですが、mutli_arrayを配列に変換する簡単な方法はわかりません。そうする方法はありますか?

+0

参照:http://stackoverflow.com/a/23649263/3962537 –

答えて

1

boost::multi_arrayの格納順序がwell definedあるので、あなたが実際にそのように安全に呼び出すことができます。

function((float (*)[COLS])array.data()); 

c_storage_orderは、オブジェクトの構築時に何か他のものを使用しないことを確認して、デフォルトです。

関連する問題