Переменная в конструкторе шаблона класса - PullRequest
0 голосов
/ 18 апреля 2020

Я хотел бы реализовать что-то вроде этого (в основном объект, являющийся заданным c классом шаблона класса в зависимости от какой-то другой переменной):

const auto object = (a == 0) ? std::make_unique<MyClass<X> >(...) 
                             : std::make_unique<MyClass<Y> >(...);

Я знаю, что это явно не работает, и я также думаю, я знаю почему, но вы видите какой-нибудь способ обойти это?

РЕДАКТИРОВАТЬ:

<MyClass<X> и <MyClass<Y> не происходят из одного базового класса в настоящее время.

Я поместил различные определения функций для X и Y, например, я бы просто хотел вызвать

object->callFunction();

в другой момент и, конечно, получить другие результаты, если он либо X, либо Y.

Будет ли он работать как фиктивный базовый класс, из которого получаются <MyClass<X> и <MyClass<Y>, а затем просто установить object в что и переопределить объект впоследствии в зависимости от условий?

EDIT2:

Ну, это работает так, как я хотел, но это все же что-то, кроме эстетики c. Спасибо, хотя.

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