diff options
author | Karen Arutyunov <karen@codesynthesis.com> | 2020-12-25 11:59:14 +0300 |
---|---|---|
committer | Karen Arutyunov <karen@codesynthesis.com> | 2021-01-13 22:32:44 +0300 |
commit | ac58ebce44e0ea4c4dabca3f4440eb21bfe3dd2a (patch) | |
tree | c7648e37dff5aba76eff33f3009d052be9f518c1 /xsd/xsd | |
parent | 818bcfa0dbbc1ef48bc3fe1f0c14d12866c51ef2 (diff) |
Fix GCC 'implicitly-declared copy constructor is deprecated' warningc++98-tests
Note that since c++11 the generation of the implicit copy constructor is
deprecated for a class with a user-defined copy assignment operator.
Diffstat (limited to 'xsd/xsd')
-rw-r--r-- | xsd/xsd/cxx/tree/tree-header.cxx | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/xsd/xsd/cxx/tree/tree-header.cxx b/xsd/xsd/cxx/tree/tree-header.cxx index ffec3a3..6987d5e 100644 --- a/xsd/xsd/cxx/tree/tree-header.cxx +++ b/xsd/xsd/cxx/tree/tree-header.cxx @@ -252,6 +252,12 @@ namespace CXX << container << "* c = 0);" << endl; + os << "#ifdef XSD_CXX11" << endl + << name << "&" << endl + << "operator= (const " << name << "&) = default;" + << "#endif" << endl + << endl; + // clone // if (doxygen) @@ -527,6 +533,12 @@ namespace CXX << container << "* c = 0);" << endl; + os << "#ifdef XSD_CXX11" << endl + << name << "&" << endl + << "operator= (const " << name << "&) = default;" + << "#endif" << endl + << endl; + // clone // if (doxygen) @@ -942,6 +954,12 @@ namespace CXX << container << "* c = 0);" << endl; + os << "#ifdef XSD_CXX11" << endl + << name << "&" << endl + << "operator= (const " << name << "&) = default;" + << "#endif" << endl + << endl; + // clone // if (doxygen) @@ -3319,11 +3337,14 @@ namespace CXX // operator= // bool priv (false); + bool asop (true); if (!simple) { if (options.suppress_assignment ()) { + asop = false; + priv = true; os << "private:" << endl; @@ -3343,6 +3364,8 @@ namespace CXX } else if (has_members || (gen_wildcard && (hae || haa))) { + asop = false; + if (doxygen) { os << "/**" << endl @@ -3371,6 +3394,15 @@ namespace CXX if (priv) os << "public:" << endl; + if (asop) + { + os << "#ifdef XSD_CXX11" << endl + << name << "&" << endl + << "operator= (const " << name << "&) = default;" + << "#endif" << endl + << endl; + } + // d-tor // if (doxygen) @@ -3872,6 +3904,12 @@ namespace CXX flags_type << " f = 0);" << endl; + os << "#ifdef XSD_CXX11" << endl + << name << "&" << endl + << "operator= (const " << name << "&) = default;" + << "#endif" << endl + << endl; + // _clone // if (doxygen) |