#include "tbb/blocked_range3d.h"
template<typename PageValue, typename RowValue, typename ColValue> class blocked_range3d;
blocked_range3d<PageValue,RowValue,ColValue> は、blocked_range2d の 3 次元拡張です。
namespace tbb {
template<typename PageValue, typename RowValue=PageValue, typename ColValue=RowValue>
class blocked_range3d {
public:
// 型
typedef blocked_range<PageValue> page_range_type;
typedef blocked_range<RowValue> row_range_type;
typedef blocked_range<ColValue> col_range_type;
// コンストラクター
blocked_range3d(
PageValue page_begin, PageValue page_end,
typename page_range_type::size_type page_grainsize,
RowValue row_begin, RowValue row_end,
typename row_range_type::size_type row_grainsize,
ColValue col_begin, ColValue col_end,
typename col_range_type::size_type col_grainsize);
blocked_range3d( PageValue page_begin, PageValue page_end,
RowValue row_begin, RowValue row_end,
ColValue col_begin, ColValue col_end);
blocked_range3d( blocked_range3d& r, split );
blocked_range3d( blocked_range3d& r, proportional_split& proportion );
// 比例分割が可能
static const bool is_splittable_in_proportion = true;
// キャパシティー
bool empty() const;
// アクセス
bool is_divisible() const;
const page_range_type& pages() const;
const row_range_type& rows() const;
const col_range_type& cols() const;
};
}