Voici ma version: moins verbeuse. Pas si différent de l'example.
#include<iostream>#include"boost/variant.hpp"#include<boost/hana/functional/overload.hpp>usingnamespacestd::string_literals;structNombreFixé{intnombre;};structNombreMaximumHardware{};structPasDeThreading{};structCasParticulier{};usingPolitiqueThread=boost::variant<NombreFixé,NombreMaximumHardware,PasDeThreading,CasParticulier>;intmain(){PolitiqueThreadthreadCount=NombreFixé{10};std::cout<<boost::apply_visitor(boost::hana::overload([](NombreFixéf){return"nombre fixé à "s+std::to_string(f.nombre);},[](NombreMaximumHardware){return"Fait chauffer la ferme de calcul"s;},[](PasDeThreading){return"Plutôt tranquille"s;},[](CasParticulier){return"Celui-ci je ne l'aime pas"s;}),threadCount)<<std::endl;};
[^] # Re: C'est vrai que c'est plus verbeux en c++
Posté par Gof (site web personnel) . En réponse au journal Sortie de GHC 8.0.2 et une petite histoire de typage statique. Évalué à 2.
Voici ma version: moins verbeuse. Pas si différent de l'example.
Résultat: http://melpon.org/wandbox/permlink/LH6QB4tOXjSYpLGz
(Note: cet exemple ne fonctionne que avec clang car GCC ne supporte pas les accents dans les nom de types)
On pourrait ajouter un constructeur à
NombreFixéavec un assert pour s'assurer que la valeur est correcte.