Zuerst lernte ich über Template-Template-Parameter, und ich begann zu fragen, ob ich eine vector<vector<int>>
hätte, wenn ich eine Vorlage machen könnte, die den Typ int
von dort extrahiert.Template Vorlage Parameter einfaches Beispiel
Aber in dem Prozess zu versuchen, ein Beispiel zu bauen, kann ich nicht einmal eine einstufige Vorlage Parameter Vorlage Funktion zu arbeiten!
#include <iostream>
#include <vector>
template<
template<class> class C2,
class I
>
void for_2d(const C2<I>& container)
{
for(auto j : container){
std::cout << j;
}
}
int main() {
std::vector<int> cont;
for_2d(cont);
return 0;
}
Dies erzeugt:
17 : <source>:17:5: error: no matching function for call to 'for_2d'
for_2d(cont);
^~~~~~
8 : <source>:8:6: note: candidate template ignored: substitution failure : template template argument has different template parameters than its corresponding template template parameter
void for_2d(const C2<I>& container)
^
1 error generated.
Compiler exited with result code 1
Try vector :: value_type -kein brauchen es zu erschweren. – erenon