インテル® C++ コンパイラー 17.0 デベロッパー・ガイドおよびリファレンス
多次元オブジェクトの次元の境界を指定する一貫した方法を提供します。
#include
<sdlt/n_extent.h>
template<int DimensionT, typename ObjT> auto bounds_d(const ObjT &a_obj)
多次元オブジェクトの次元の境界を指定する一貫した方法を提供します。 n_bounds_t<…> の 1 つの次元の境界のみ必要な場合、全体を抽出する必要がありません。
テンプレート引数 |
説明 |
---|---|
int DimensionT |
左端の次元から開始する 0 ベースのインデックス。境界を照会する n 次元を示します。 要件: DimensionT >= 0 および DimensionT < ObjT::rank |
typename ObjT |
範囲を取得する n 次元のオブジェクトの型。 要件: ObtT は次のいずれかです。 n_container<…> n_bounds_t<…> n_bounds_generator<…> n_container<…>::accessor n_container<…>::const_accessor 分割アクセサーまたは変換アクセサー |
戻り値
要求された a_obj の DimensionT に対応する適切な型の bounds_t<LowerT, UpperT>。
例:
template <typename VolumeT> void foo(const VolumeT & a_volume) { auto bounds_z = bounds_d<0>(volume); auto bounds_y = bounds_d<1>(volume); auto bounds_x = bounds_d<2>(volume); for(auto z : bounds_z) for(auto y : bounds_y) for(auto x : bounds_x) { // … } }