Контейнер передан в качестве аргумента шаблона в class-template - PullRequest
0 голосов
/ 22 декабря 2011

Я пытаюсь создать простой класс шаблонов, в котором я создаю объект класса шаблонов, предоставляя контейнер в качестве типа шаблона, исходя из моего понимания шаблонов, это не должно быть проблемой и должно обрабатываться точно так же, как int или char,но это всегда дает мне ошибку, говоря:

"template argument 1 is invalid"

Вот строка, в которой я сталкиваюсь с этой ошибкой:

templateTest<(std::list<int>)> testingTheTemplate;

Вот скелет класса шаблона

template <class testType> class templateTest 
{
   /* use some iterators and print test data here */
};

Что мне здесь не хватает?

Ответы [ 2 ]

3 голосов
/ 22 декабря 2011

Вы забыли точку с запятой после определения класса:

template <class testType> class templateTest 
{

}; // <- semicolon

Кроме того, объявите свою реализацию следующим образом:

templateTest<std::list<int> > testingTheTemplate;
                       // ^^^ required space (C++03)

Без скобок и обратите внимание на пробел между ними.

До C ++ 11 << и >> рассматриваются как операторы.Вы должны разделить их в подобных случаях.

1 голос
/ 22 декабря 2011

Это должно быть
templateTest<std::list<int> > testingTheTemplate; в C ++ 03
или templateTest<std::list<int>> testingTheTemplate; в C ++ 11

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...