Объект, который содержит `std :: variant` о себе [дублировать]C++

Программы на C++. Форум разработчиков
Anonymous
Объект, который содержит `std :: variant` о себе [дублировать]

Сообщение Anonymous »

Я подозреваю, что мой вопрос очень похож на вариант std :: variant контейнера, который содержит себя, но я не могу применить его к своей ситуации. У меня есть < /p>

Код: Выделить всё

class Foo;
class Bar;

using Analyzable = std::variant;

class Foo {
public:
Foo(Analyzable f);

private:
Analyzable f;
};
< /code>
Я не уверен, какую часть должна быть шаблона, и что. Я попробовал < /p>
template 
using Analyzable = std::variant;

template 
class FooTPL : public Analyzable {
Analyzable f;
};

using Foo = FooTPL;
Но тогда это просто рекурсия бесконечного шаблона. Я пытаюсь избежать этого распределения. < /P> сохраняет единоличное право собственности на своих членов, и любое решение в идеале не нарушает эту инкапсуляцию.


Подробнее здесь: https://stackoverflow.com/questions/796 ... -of-itself

Вернуться в «C++»