diff options
Diffstat (limited to 'libxsd/xsd/cxx/xml/string.txx')
-rw-r--r-- | libxsd/xsd/cxx/xml/string.txx | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/libxsd/xsd/cxx/xml/string.txx b/libxsd/xsd/cxx/xml/string.txx index 830ed92..c6f1d20 100644 --- a/libxsd/xsd/cxx/xml/string.txx +++ b/libxsd/xsd/cxx/xml/string.txx @@ -47,7 +47,13 @@ namespace xsd XMLCh* wchar_transcoder<W, 2>:: from (const W* s, std::size_t length) { - auto_array<XMLCh> r (new XMLCh[length + 1]); +#ifdef XSD_CXX11 + std::unique_ptr<XMLCh[]> r ( +#else + auto_array<XMLCh> r ( +#endif + new XMLCh[length + 1]); + XMLCh* ir (r.get ()); for (std::size_t i (0); i < length; ++ir, ++i) @@ -120,7 +126,13 @@ namespace xsd rl += (*p & 0xFFFF0000) ? 2 : 1; } - 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 ()); for (const W* p (s); p < s + length; ++p) |