From 0fdf19714613a82a184f4f6e75fb9a4f9b62f18a Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Sun, 19 Jan 2014 10:05:08 +0200 Subject: Use std::unique_ptr instead of std::auto_ptr in C++11 mode --- xsd/cxx/tree/generator.cxx | 111 +++++++++++++++++++++++++-------------------- 1 file changed, 63 insertions(+), 48 deletions(-) (limited to 'xsd/cxx/tree/generator.cxx') diff --git a/xsd/cxx/tree/generator.cxx b/xsd/cxx/tree/generator.cxx index b373d31..35c53bc 100644 --- a/xsd/cxx/tree/generator.cxx +++ b/xsd/cxx/tree/generator.cxx @@ -188,6 +188,7 @@ namespace CXX FileList& file_list, AutoUnlinks& unlinks) { + using cutl::shared_ptr; typedef cutl::re::regexsub Regex; typedef vector Paths; @@ -711,29 +712,13 @@ namespace CXX << "#define " << guard << endl << endl; - // Version check. - // - fwd << "#include " << endl - << endl - << "#if (XSD_INT_VERSION != " << XSD_INT_VERSION << "L)" << endl - << "#error XSD runtime version mismatch" << endl - << "#endif" << endl - << endl; - - fwd << "#include " << endl + if (ctx.std >= cxx_version::cxx11) + { + fwd << "#ifndef XSD_CXX11" << endl + << "#define XSD_CXX11" << endl + << "#endif" << endl << endl; - - // Copy prologue. - // - fwd << "// Begin prologue." << endl - << "//" << endl; - - append (fwd, ops.fwd_prologue (), ops.prologue ()); - append (fwd, ops.fwd_prologue_file (), prologue); - - fwd << "//" << endl - << "// End prologue." << endl - << endl; + } if (ctx.char_type == L"char") { @@ -760,6 +745,30 @@ namespace CXX << endl; } + // Version check. + // + fwd << "#include " << endl + << endl + << "#if (XSD_INT_VERSION != " << XSD_INT_VERSION << "L)" << endl + << "#error XSD runtime version mismatch" << endl + << "#endif" << endl + << endl; + + fwd << "#include " << endl + << endl; + + // Copy prologue. + // + fwd << "// Begin prologue." << endl + << "//" << endl; + + append (fwd, ops.fwd_prologue (), ops.prologue ()); + append (fwd, ops.fwd_prologue_file (), prologue); + + fwd << "//" << endl + << "// End prologue." << endl + << endl; + // Generate. // { @@ -817,34 +826,16 @@ namespace CXX << "#define " << guard << endl << endl; - // Version check. - // - hxx << "#include " << endl - << endl - << "#if (XSD_INT_VERSION != " << XSD_INT_VERSION << "L)" << endl - << "#error XSD runtime version mismatch" << endl - << "#endif" << endl - << endl; - - hxx << "#include " << endl - << endl; - - // Copy prologue. - // - hxx << "// Begin prologue." << endl - << "//" << endl; - - append (hxx, ops.hxx_prologue (), ops.prologue ()); - append (hxx, ops.hxx_prologue_file (), prologue); - - hxx << "//" << endl - << "// End prologue." << endl - << endl; - - // Generate character selection defines. - // if (!forward) { + if (ctx.std >= cxx_version::cxx11) + { + hxx << "#ifndef XSD_CXX11" << endl + << "#define XSD_CXX11" << endl + << "#endif" << endl + << endl; + } + if (ctx.char_type == L"char") { hxx << "#ifndef XSD_USE_CHAR" << endl @@ -871,6 +862,30 @@ namespace CXX } } + // Version check. + // + hxx << "#include " << endl + << endl + << "#if (XSD_INT_VERSION != " << XSD_INT_VERSION << "L)" << endl + << "#error XSD runtime version mismatch" << endl + << "#endif" << endl + << endl; + + hxx << "#include " << endl + << endl; + + // Copy prologue. + // + hxx << "// Begin prologue." << endl + << "//" << endl; + + append (hxx, ops.hxx_prologue (), ops.prologue ()); + append (hxx, ops.hxx_prologue_file (), prologue); + + hxx << "//" << endl + << "// End prologue." << endl + << endl; + // Generate. // { -- cgit v1.1