データを保持するために生のポインターを使用するだけのソフトウェアとやり取りしようとしています。ドキュメントで「非常に危険」と主張されていてもshallow_array_adaptor
、ラッピング ベクター インスタンスを作成すれば、問題を回避できると確信しています。const
shallow_array_adaptor
私は次のようなことをしたいと思います:
using namespace boost::numeric::ublas
void f(vector<double>& acc, double* arr){
// assume acc is already correctly sized, and arr is correctly allocated
// this syntax is not correct, I'm pretty sure I'll have to construct
// the instance of shallow_array_adaptor, but don't know how to
// get it to the vector's constructor
const vector< double , shallow_array_adaptor< double > > view( arr );
acc+=view; // by wrapping the raw pointer, I get to use nice syntax here.
}
に保存されている値をコピーする必要はありませんarr
。
指定されたポインターをストレージとして使用するようにベクターを構築するために何をしなければならないかわかりません。