Czy mogę użyć std :: vector jako parametru szablonu lub czy musi być std :: vector <T>?

Wiem, że to proste pytanie, ale nie mogłem znaleźć odpowiedzi.

Próbuję zrobić coś takiego, ale zamiast z std :: vector ostatecznie chcę, aby był to std :: shared_ptr lub std :: weak_ptr:

template <int dim, class ChunkClass, class PtrClass>
class BaseChunkWindow : public IChunkWindow<BaseChunkWindow<dim, ChunkClass, PtrClass>, IChunk<ChunkClass>> {
public:
...
private:
PtrClass< IChunk<ChunkClass> > ptr;  <-- compiler doesn't like this line, however IChunk<ChunkClass>* works
};

questionAnswers(2)

yourAnswerToTheQuestion