Я хотел бы создать шаблонный класс, который имеет два аргумента шаблона.Первый - N - это класс переменной по умолчанию, установленный как int
, а второй container - это контейнер из stl
, а по умолчанию - std::vector
.
#include <iostream>
#include <vector>
template <class N=int,
template <class T=N, class Allocator=std::allocator<N>>
class container=std::vector>
class foo{
container<N> cont;
};
int main()
{
foo f;
}
Когда я создал объект f
указанного выше класса без аргументов шаблона, компилятор написал следующую ошибку:
In function 'int main()':
15:9: error: missing template arguments before 'f'
Я бы хотел, чтобы foo
был эквивалентенfoo<int, std::vector>
объявление.
Где проблема в моем определении класса?