Définition de type c++

Le problème exposé dans ce sujet a été résolu.

Bonjour, en ce moment je suis sur un petit projet en c++, et je me demandais quelle était la manière la plus optimisé pour reproduire ce comportement, issu de ocaml en c++ :

type foo = 
  | A
  | B
  | C of foo list

Je trouve en effet que la structure n’est pas très adapté puisque je suis obligé de créer d’abord une énumération puis une union dans la structure ce qui n’est pas très pratique. Si quelqu’un à une idée, je suis preneur.

std::variant est ce qui correspond le plus. Mais celle du standard ne supporte pas les structures récursives du coup il faut soit utiliser une implémentation alternative (on en trouve facilement sur github) soit utiliser une structure qui a comme membre un pointeur sur elle-même: struct Foo { std::variant<A, B, Foo* / std::unique_ptr<Foo> / std::vector<Foo> / etc> }.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte