так не получится, vector класса без шаблонных параметров в принципе не существует
|
Ему и не нужно существовать, т.к. существуют шаблонные шаблонные параметры.
Проблема первого поста заключается в отсутствии второго аругмента в строке:
потому что std::vector имеет два шаблонных параметра (хотя второй и задан по умолчанию, но почему-то игнорируется)
если писать так:
template <template <class ...> class Container>
class Node {
public:
Node() {}
private:
Container<Node*, std::allocator<Node*>> _list;
};
Node<std::vector> n;
То все работает, но шаблон тогда получается привязан к std::allocator, чего хочется избежать.
Сделал менее удобным, но более гибким способом
template <class T> struct stdVector { typedef std::vector<T> type; };
template <template <typename ...> class Container>
class Node {
public:
Node() {}
private:
typename Container<cNode*>::type _list;
};
...
Node<stdVector> n;