はのは、私はNが次元であり、次のように寸法が達成されintegral_constant<size_t, N>
から継承し、class/struct
タイプをしたいとしましょう:は、STDの次元数::ベクトル/ STDを取得::配列
template<class T>
struct dimension;
template<class T>
struct dimension<vector<T>> : integral_constant<size_t, 1> {};
template<class T>
struct dimension<vector<vector<T>>> : integral_constant<size_t, 2> {};
そして
cout << dimension<vector<int>>::value; // 1
cout << dimension<vector<vector<int>>>::value; // 2
しかし、これは明らかに次元の数は、(理論的には)無限の可能として、完璧ではありません。これに汎用的な解決策を達成する方法はありますか?
提案:std::vector
が、これは動作しません、他のテンプレートパラメータを持っているので
template<class T, class... Tn>
struct dimension<vector<Tn...>> : integral_constant<size_t, sizeof...(Tn)> {};
を:私はこの方向に行ってきましたが、ないさらに。
これも私のものでした。それは拘束されなければならないだろう。 – DeiDei
@ T.C。右。一定。 – skypjack