id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 10040,Incompatibility headers spirit::qi and log,wixdesq@…,Andrey Semashev,"Hi, I'm using msvc 12.0 with boost built in amd 64 mode. I get an error when the headers : {{{#!c++ #include #include }}} are present with these headers : {{{#!c++ #include #include }}} Well, I wrote my little configuration parser using spirit::qi, and it was fine. It worked nicely and converted my strings into integers when needed. But today I wanted to add a log system to my code, and wanted to use boost::log. I followed the tutorial, and only some headers worked on their own : {{{#!c++ #include #include }}} The output of cl.exe : (sorry, it's in french) {{{#!c++ 1> main.cpp 1>D:\Code\lib\boost_1_55_0\boost/phoenix/version.hpp(16): warning C4005: 'BOOST_PHOENIX_VERSION' : redéfinition de macro 1> D:\Code\lib\boost_1_55_0\boost/spirit/home/phoenix/version.hpp(16) : voir la définition précédente de 'BOOST_PHOENIX_VERSION' 1>D:\Code\lib\boost_1_55_0\boost/phoenix/core/limits.hpp(26): warning C4005: 'PHOENIX_LIMIT' : redéfinition de macro 1> D:\Code\lib\boost_1_55_0\boost/spirit/home/phoenix/core/limits.hpp(13) : voir la définition précédente de 'PHOENIX_LIMIT' 1>D:\Code\lib\boost_1_55_0\boost/phoenix/core/is_actor.hpp(28): error C2977: 'boost::phoenix::is_actor' : nombre d'arguments modèle trop élevé 1> D:\Code\lib\boost_1_55_0\boost/spirit/home/phoenix/core/is_actor.hpp(23) : voir la déclaration de 'boost::phoenix::is_actor' 1>D:\Code\lib\boost_1_55_0\boost/phoenix/core/is_actor.hpp(28): fatal error C1903: impossible de récupérer à partir des erreurs précédentes ; arrêt de la compilation 1> log.cpp 1>D:\Code\lib\boost_1_55_0\boost/proto/operators.hpp(295): warning C4180: qualificateur appliqué au type fonction n'a pas de sens ; ignoré 1> src\log.cpp(114) : voir la référence à l'instanciation de la fonction modèle 'const boost::phoenix::actor boost::proto::exprns_::operator <<>,std::ios_base&(std::ios_base &)>(Left &&,Right (__cdecl &&))' en cours de compilation 1> with 1> [ 1> Expr=boost::proto::exprns_::expr>,0>>,boost::phoenix::actor,0>>>,2>>,boost::phoenix::actor>,0>>>,2>>,boost::phoenix::actor>,0>>>,2>>,boost::log::v2s_mt_nt5::expressions::attribute_actor>,2>>,boost::phoenix::actor,0>>>,2> 1> , Tag=boost::proto::tagns_::tag::shift_left 1> , Args=boost::proto::argsns_::list2>,0>>,boost::phoenix::actor,0>>>,2>>,boost::phoenix::actor>,0>>>,2>>,boost::phoenix::actor>,0>>>,2>>,boost::log::v2s_mt_nt5::expressions::attribute_actor> 1> , Left=const boost::phoenix::actor>,0>>,boost::phoenix::actor,0>>>,2>>,boost::phoenix::actor>,0>>>,2>>,boost::phoenix::actor>,0>>>,2>>,boost::log::v2s_mt_nt5::expressions::attribute_actor>,2>> 1> , Right=std::ios_base &(std::ios_base &) 1> ] }}} I tried to find out what was wrong with Phoenix.. I don't really know how it works behing the scene, but I read on the web Log is using Phoenix3 .. Maybe qi is not using the same version and something goes wrong when including both together ... Just making hypothesis ... Anyway this is, I think, a bug. I added my CL.read.1.log, which contains all the files retreived by msvc during the building process.",Bugs,closed,To Be Determined,log,Boost 1.55.0,Problem,wontfix,,