Je commence à connaître boost :: variant. Je pense que cet exemple devrait fonctionner.Pourquoi l'exemple boost :: variant ne fonctionne-t-il pas?
#include <boost/fusion/sequence.hpp>
#include <boost/fusion/include/sequence.hpp>
#include <boost/variant/variant.hpp>
#include <string>
#include <vector>
#include <iostream>
#include <boost/variant/get.hpp>
boost::variant< bool,long,double,std::string,
std::vector<boost::variant<bool> > > v4;
void main()
{
std::vector<boost::variant<bool> > av (1);
v4= av;
try
{
bool b=
boost::get<bool> (v4[0]); // <--- this is line 20
std::cout << b;
}
catch (boost::bad_get v)
{
std::cout << "bad get" <<std::endl;
}
}
Je reçois une erreur de compilation:
d: \ m \ UPP \ boosttest \ main.cpp (20): erreur C2676: binaire '[': 'boost :: variante' faire es pas définir cet opérateur ou une conversion en un type acceptable pour l'opérateur prédéfini avec [ T0_ = bool, T1 = long, T2 = double, T3 = std :: string, T4 = std :: vecteur> ]
Pourquoi utilisez-vous boost :: variante? Une variante de type unique est un peu inutile, non? –
alexk7
En effet, je viens d'expérimenter. – Aftershock