#include #include #include int main(int ac, char** av) { boost::spirit::utree u; std::string test("test"); u = test; std::cout << "u = " << u << ", " << u.which() << std::endl ; // 1. Using range, OK boost::spirit::utf8_string_range_type srange = u.get(); std::string s1(srange.begin(), srange.end()); std::cout << "s1 = " << s1 << std::endl; // 2. Using spirit string, FAIL --> std::bad_cast std::string s2 = u.get(); std::cout << "s2 = " << s2 << std::endl; // 3. Using std::string, FAIL --> std::bad_cast std::string s3 = u.get(); std::cout << "s3 = " << s3 << std::endl; return 0; }