Si j'ai un conteneur 3D, qui peut être la combinaison de tous les types contenant là-bas. et je dois écrire une fonction générique qui reçoit ce conteneur comme un argument, et doit retourner un conteneur 2D (une matrice) qui est du même type que les éléments du conteneur 3D.Comment puis-je connaître le type des éléments de mon conteneur 3D?
Pour expample, le conteneur 3D reçu:
std::vector<std::deque<std::deque<int>>> 3D;
Le type retourné:
std::deque<std::deque<int>>
Comment puis-je obtenir cela, et faire le type de retour générique et dépendant du conteneur multidimensionnel qui a été reçu? Disons que j'ai une fonction générique qui reçoit un conteneur 3D, et doit retourner le même type que le conteneur 3D contient. Par exemple: ma fonction est comme ceci:
template<typename 3D>
auto Function(3D Knt)-> decltype(0+Knt[0]){
// randome code
decltype(0+Knt[0]) K;
// randome code
return K;
}
Cela va-t-il provoquer des erreurs?
Les conteneurs standard déclarent un membre de type 'value_type' à cette fin. – VTT
Je suis confus: Vous semblez connaître le 'decltype', donc vous devriez être capable de travailler comment obtenir le type. – Rakete1111
Yess, je le sais, mais je ne sais pas comment cibler l'élément, ou l'élément de l'élément du conteneur 3D. Je l'ai essayé comme ceci: auto Fonction (kontainer 3D) -> decltype (0 + 3D [0]) {} mais cela ne semble pas fonctionner – Nane