#include #include #include #include namespace qi = boost::spirit::qi; // Error struct foo { std::list l; }; BOOST_FUSION_ADAPT_STRUCT( foo, (std::list, l) ) // Using this instead of the above it works /* struct foo : std::list {}; */ int main(int argc, char** argv) { std::string input("1,2,3"); // Error qi::rule rule = qi::int_ % "," ; // Works, should be equivalent /* qi::rule rule = qi::int_ >> *("," >> qi::int_) ; */ // Also works /* qi::rule rule = qi::int_ % "," >> qi::eps ; */ std::string::iterator iter = input.begin(); bool r = qi::parse(iter, input.end(), rule); std::cout << (r ? "true" : "false") << std::endl; }