• # De la réinvention de la roue.

    Posté par . En réponse au journal Visiteurs en C++. Évalué à 1.

    Moi si on me disait aujourd'hui que je devais représenter une structure arborescente, et que je ne peux pas faire autrement (genre par exemple, j'ai vu des arborescences compliquées parcourues par des visiteurs, sauf que l'arborescence était statique…), je me poserait pas trop la question : boost::variant et boost::apply_visitor. Si quelqu'un à une autre méthode où le visiteur peut gérer plusieurs types avec une méthode template, je prend.

    Après reste la question de comment l'utiliser: un boost::variant<A,B,C...> avec A, B, C contenant des pointeurs vers des variants, ou boost::variant<std::unique_ptr<A>, std::unique_ptr<B>, std::unique_ptr<C> >. Chacun ayant ses inconvénients.

    Parce que bon, le coup de forcer ses types à être polymorphiques pour utiliser la RTTI ou de la réimplementer avec des énums, c'est un peu limite quand même.