はサンプルコードです:テンプレートテンプレート引数タイプ/値の不一致エラーここ
#include <stack>
#include <cstddef>
template <std::size_t N,
template <class> class Stack = std::stack
>
class Tower : protected Stack<int>
{
public:
Tower() : Stack<int>(N)
{
}
};
int main(int argc, char **argv)
{
Tower<5L> tower1();
}
そして、私は、コンパイラ(GCC)を参照してください幸せではない:標準スタックコンテナがこのフォームを持っている
file.cpp: In function 'int main(int, char**)':
file.cpp:18:11: error: type/value mismatch at argument 2 in template parameter
list for 'template<long unsigned int N, template<class> class Stack> class Tower'
file.cpp:18:11: error: expected a template of type 'template<class> class Stack',
got 'template<class _Tp, class _Sequence> class std::stack'
file.cpp:18:21: error: invalid type in declaration before ';' token
:
template <class Type, class Container = deque<Type> > class stack
;
意味ここでは、1つのテンプレート引数だけを渡すことをおすすめします。
これを解決する方法についてのご意見はありますか? ありがとう