2
私はいくつかのデータを格納するためにboost :: multi_arrayを使用しています。私はビューを使用してデータに関するすべての作業を行います。なぜなら、データのスライスをさまざまな次元で処理する必要があるからです。boost :: multi_arrayメモリ管理とスコープ
私の質問は、boost :: multi_arrayのメモリはどのように管理されていますか?
特に、私のデータのスライス(ビュー)のコピーを使用したいと思います。したがって、私はこのような何かをしたいと思います:
typedef boost::multi_array<double, 2> MyContainer;
typedef MyContainer::array_view<1>::type Slice1D;
Slice1D copy(const Slice1D & slice)
{
MyContainer copyMemory(slice);
Slice1D sliceCopy = copyMemory[boost::indices[0][range()]];
return sliceCopy;
}
void main()
{
...
Slice1D copySlice = copy(mySlice);
}
コピー機能が戻ったときにコピーを含むmulti_arrayがスコープ外になるので、私は、これは間違っているかどうかを知っていただきたいと思います。または、multi_arrayが追跡するためにスマートポインタまたは参照カウントを使用するため、OKですか?