Объект, который содержит `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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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