Вектор с шаблонируемым классом

264
06 апреля 2017, 20:37

Вот уж не знаю то ли вопрос такой глупый, то ли я действительно такой большой оригинал, но найти какую-то информацию по своему вопросу я не смог. А вопрос состоит в следующем: можно ли использовать vector для хранения экземпляров класса, использующего шаблоны?

То есть, могу ли я каким-то образом использовать вектор, например, такого типа?

vector<SomeClass<int>> v;

На первый взгляд, никаких конфликтов с типами быть не должно. Но моя IDE'ха выдаёт мне вот такое вот сообщение:

Cannot generate template specialization from 'vector(T ,Alocator)'

PS: Работаю с древнейшим компилятором 2000ого года (Borland C++ Builder 5), без возможности его изменить, так что использовать какие-то совсем уж новые прибамбасы у меня может и не получиться.

Answer 1

Шаблонный класс, у которого указаны (специфицированы) конкретные "значения"-аргументы для всех шаблонных параметров, является обычным классом и может использоваться везде, где может использоваться любой обычный (нешаблонный) класс. Ничего особенного тут нет.

Если приведенное вами объявление следует воспринимать буквально, то в вашем случае очевидной ошибкой являются лишь идущие подряд закрывающие треугольные скобки >>. В "старых" версиях спецификации языка они рассматривались парсером как неделимая лексема >>, а не как две закрывающие треугольные скобки. Поэтому при использовании с вложенными шаблонами между ними следовало ставить пробел

vector<SomeClass<int> > v;

В современных версиях языка С++ (начиная с С++11) эта особенность синтаксиса устранена.

В вашем случае - компилятор 2000 года - разумеется, следует обязательно ставить этот пробел.

В остальном ничего необычного в вашем объявлении нет, если вы не скрываете от нас что-то важное.

READ ALSO
Можно ли в кострукторе класса проверить некое условие и сразу запустить деструктор, если условие не удовлетворяет?

Можно ли в кострукторе класса проверить некое условие и сразу запустить деструктор, если условие не удовлетворяет?

Можно ли в конструкторе класса проверить некое условие и сразу запустить деструктор, если условие не удовлетворяется? Или же придется бросать...

232
Вопрос по очереди

Вопрос по очереди

Нужно разделить очередь на две, в одну значения большие или равные среднему,во вторую меньшие,при этом не создавая новую(задание такое)Как...

223
Оптимальная настройка image-min в Gulp

Оптимальная настройка image-min в Gulp

Подскажите какие должны быть настройки у image-min и его плагинов через Gulp, чтобы уровень сжатия картинок (png, jpg) был приближен к сжатию в Tinypng ?

524