Я хотел бы реализовать что-то вроде этого (в основном объект, являющийся заданным 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. Спасибо, хотя.