Ce n'est pas possible de le faire en passant par un using
. Using std::variant with recursion, without using boost::recursive_wrapper Archive du 12/09/2016 le 31/01/2024
Il faut passer par une structure.
struct Struct { std::unordered_map<std::string, std::variant<std::string, std::vector<int>, double, Struct>> values; };
La récursion d'une structure complète et non d'un pointeur nécessite gcc 12 ou clang 15.