diff options
Diffstat (limited to 'xsd/libxsd/xsd/cxx/xml/char-utf8.txx')
-rw-r--r-- | xsd/libxsd/xsd/cxx/xml/char-utf8.txx | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/xsd/libxsd/xsd/cxx/xml/char-utf8.txx b/xsd/libxsd/xsd/cxx/xml/char-utf8.txx index 9935daf..a6511be 100644 --- a/xsd/libxsd/xsd/cxx/xml/char-utf8.txx +++ b/xsd/libxsd/xsd/cxx/xml/char-utf8.txx @@ -1,9 +1,14 @@ // file : xsd/cxx/xml/char-utf8.txx -// author : Boris Kolpackov <boris@codesynthesis.com> -// copyright : Copyright (c) 2005-2010 Code Synthesis Tools CC +// copyright : Copyright (c) 2005-2014 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file -#include <xsd/cxx/auto-array.hxx> +#include <xsd/cxx/config.hxx> // XSD_CXX11 + +#ifdef XSD_CXX11 +# include <memory> // std::unique_ptr +#else +# include <xsd/cxx/auto-array.hxx> +#endif namespace xsd { @@ -184,7 +189,12 @@ namespace xsd if (!valid) throw invalid_utf8_string (); - auto_array<XMLCh> r (new XMLCh[rl + 1]); +#ifdef XSD_CXX11 + std::unique_ptr<XMLCh[]> r ( +#else + auto_array<XMLCh> r ( +#endif + new XMLCh[rl + 1]); XMLCh* ir (r.get ()); unsigned int u (0); // Four byte UCS-4 char. |