Хранить любой шаблон класса в другом классе - PullRequest
0 голосов
/ 01 июня 2018

Если вы хотите сохранить какой-либо шаблонный класс в другом классе, есть ли способ сделать это, не выходя за пределы шаблонного базового класса.Пример

определение класса:

class BaseA
{
    ...
}

class Storage
{
public:
    baseA* toStore;//pointer to baseA
}

template <typename... Type>
class ExtendedA : public baseA
{
    ...
}

с использованием класса:

Storage a;
one.toStore = ExtendedA<int, char, etc...>();

Это единственный способ сохранить шаблонный тип в не шаблонномучебный класс.Есть ли другие способы сделать это?

1 Ответ

0 голосов
/ 04 июня 2018

Единственный способ сохранить и использовать шаблонный тип, где шаблон неизвестен, - это настроить классы так же, как в примере из вопроса.

Есть базовый класс без шаблонов.
Расширение этого базового класса и шаблон расширения.
Теперь можно хранить и использовать указатель на базовый класс, даже если это расширенный класс с шаблонами.

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