インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス

bounds_d テンプレート関数

多次元オブジェクトの次元の境界を指定する一貫した方法を提供します。#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) {
                // …
            }
}