Пример #1
0
 void xml_writer_impl::write_text(const variant& text)
 {
     try
     {
         switch(text.type())
         {
         case variant::Any:
         case variant::String:
         {
             m_os << detail::xml_utility::escape_chars(text.as<std::string>());
             break;
         }
         case variant::Int32:
         case variant::UInt32:
         case variant::Int64:
         case variant::UInt64:
         case variant::Float:
         case variant::Double:
         case variant::Boolean:
         case variant::Date:
         case variant::Time:
         case variant::DateTime:
         {
             m_os << text.any_cast().as<std::string>();
             break;
         }
         default:
             boost::throw_exception(variant_error("Attempt to output non-primitive variant as text: " + variant::enum_to_string(text.type()))); 
         }
     }
     catch (const std::exception &e)
     {
         boost::throw_exception(variant_error(e.what()));
     }
     catch (...)
     {
         boost::throw_exception(variant_error("Unhandled Exception"));
     }
 }