Boost.Variant warning et visual
Bonjour,
Sur un exemple aussi simple :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
#include <iostream>
#include <string>
#include <boost/variant.hpp>
struct mon_visiteur :boost::static_visitor<void>
{
void operator()(int i_)const
{
std::cout<<"un entier de valeur "<<i_<<std::endl;
}
void operator()(std::string str_)const
{
std::cout<<"une chaine de valeur "<<str_<<std::endl;
}
};
int main()
{
boost::variant<int,std::string> un_entier_ou_une_chaine;
un_entier_ou_une_chaine=1;
boost::apply_visitor(mon_visiteur(),un_entier_ou_une_chaine);
un_entier_ou_une_chaine = "tutu";
boost::apply_visitor(mon_visiteur(),un_entier_ou_une_chaine);
return 0;
} |
J'ai 6 beaux warning avec Visual Express :
Code:
1 2 3 4 5 6 7
|
warning C4512: 'boost::detail::variant::direct_assigner<T>' : assignment operator could not be generated
warning C4512: 'boost::detail::variant::invoke_visitor<Visitor>' : assignment operator could not be generated
warning C4512: 'boost::detail::variant::direct_assigner<T>' : assignment operator could not be generated
warning C4512: 'boost::variant<T0_,T1>::assigner' : assignment operator could not be generated
warning C4512: 'boost::detail::variant::invoke_visitor<Visitor>' : assignment operator could not be generated
warning C4512: 'boost::detail::variant::invoke_visitor<Visitor>' : assignment operator could not be generated |
Visiblement, il ne sait pas construire l'opérateur d'assignement par défaut (du moins, si mon anglais n'est pas trop bancal).
Question : Qu'est-ce que cela peut avoir comme conséquence ?
Question bis: comment je peux virer ces warning (à part un brutal pragma disable).
Il ne me semble rien avoir vu à ce sujet sur le site de boost.