私はいくつかの3Dコンテナを持っています。 このコンテナを引数として受け取り、3Dコンテナの要素と同じ型の2Dコンテナ(行列)を返さなければならない汎用関数を記述する必要があります。3Dコンテナの要素がどのようなタイプであるかを知るにはどうすればよいですか?
はexpampleについては、3Dコンテナが受信:
std::vector<std::deque<std::deque<int>>> 3D;
返さタイプ:
std::deque<std::deque<int>>
私はこれを達成し、戻り値の型が一般的であり、多次元コンテナに依存することができますどのように受信されましたか? 3Dコンテナを受け取り、3Dコンテナと同じタイプを返す汎用関数があるとします。たとえば、私の関数は次のようになります。
template<typename 3D>
auto Function(3D Knt)-> decltype(0+Knt[0]){
// randome code
decltype(0+Knt[0]) K;
// randome code
return K;
}
これは間違いを引き起こしますか?
標準コンテナは、この目的のためにメンバ 'value_type'型を宣言します。 – VTT
私は混乱しています:あなたは 'decltype'について知っているようですので、型を取得する方法を理解できるはずです。 – Rakete1111
Yess、私はそれを知っていますが、3Dコンテナの要素の要素または要素をどのようにターゲットするかはわかりません。私はこのようにしました:auto function(kontainer 3D) - > decltype(0 + 3D [0]){} しかし、それは動作していないようです。 – Nane