// file : xsd/cxx/xml/char-utf8.hxx // author : Boris Kolpackov // copyright : Copyright (c) 2005-2011 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file #ifndef XSD_CXX_XML_TRANSCODER #define XSD_CXX_XML_TRANSCODER #define XSD_CXX_XML_TRANSCODER_CHAR_UTF8 #include #include // std::size_t #include // XMLCh #include // invalid_utf16_string namespace xsd { namespace cxx { namespace xml { struct invalid_utf8_string {}; // UTF-16 to/from UTF-8 transcoder. // template struct char_utf8_transcoder { static std::basic_string to (const XMLCh* s, std::size_t length); static XMLCh* from (const C* s, std::size_t length); private: static const unsigned char first_byte_mask_[5]; }; typedef char_utf8_transcoder char_transcoder; } } } #include #else # ifndef XSD_CXX_XML_TRANSCODER_CHAR_UTF8 // // If you get this error, it usually means that either you compiled // your schemas with different --char-encoding values or you included // some of the libxsd headers (e.g., xsd/cxx/xml/string.hxx) directly // without first including the correct xsd/cxx/xml/char-*.hxx header. // # error conflicting character encoding detected # endif #endif // XSD_CXX_XML_TRANSCODER