最初テンプレートテンプレートパラメータについて学習していましたが、int
テンプレートをテンプレートから作成することができれば、vector<vector<int>>
があるのか不思議に思っていました。テンプレートテンプレートパラメータの単純な例
しかし、例を作成しようとする過程で、私は単一レベルのテンプレートパラメータテンプレート関数を動作させることさえできません!
#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;
}
これが生成します。
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
はベクトルを試してみてください:: VALUE_TYPE -noそれを複雑にする必要があり、完全な実施例です。 – erenon