utilisation de boost::locale et conversion text -> nombre
	
	
		Bonjour,
quelqu'un pourrait il m'éclairer sur l'usage de boost:locale. Je souhaiterais convertir des chaines de texte suivant différentes locales : typiquement FR et US.
voici un bout de code qui ne marche pas et qui lève une exception.
	Code:
	
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 
 |     string  spi = "3,14";
    BOOST_LOG_TRIVIAL(debug) << "try to convert " << spi;
    std::locale loc= boost::locale::generator().generate("fr_FR.UTF-8");
    std::locale oldloc = std::locale::global(loc);
    BOOST_LOG_TRIVIAL(debug) << "change locale from : "<< oldloc.name().c_str() << " to : "<<loc.name().c_str();
    char point = std::use_facet< std::numpunct<char> >(std::cin.getloc()).decimal_point();
    std::locale l1;
    BOOST_LOG_TRIVIAL(debug) << "locale l1 = "<<l1.name().c_str()<<" decimal sep = "<<point;
    try{
        double pi = boost::lexical_cast<double>(spi);
        BOOST_LOG_TRIVIAL(debug) << "pi=" << pi;
    }catch(boost::bad_lexical_cast & e){
        BOOST_LOG_TRIVIAL(debug) << "lexical cast error : " << e.what();
    } | 
 Cela me donne à l'éxécution la sortie suivante :
	Code:
	
| 12
 3
 4
 
 | [2020-05-06 07:50:20.628677] [0x00007fccc8355740] [debug]   try to convert 3,14
[2020-05-06 07:50:20.630141] [0x00007fccc8355740] [debug]   change locale from : C to : *
[2020-05-06 07:50:20.630214] [0x00007fccc8355740] [debug]   locale l1 = * decimal sep = .
[2020-05-06 07:50:20.630522] [0x00007fccc8355740] [debug]   lexical cast error : bad lexical cast: source type value could not be interpreted as target | 
 Je ne comprend pas comment réaliser mes conversions de chaine de texte contenant des nombres selon différentes locales.
merci d'avance de vos idées/explications.