summaryrefslogtreecommitdiff
path: root/xsd/xsd/cxx/tree/tree-header.cxx
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2020-12-25 11:59:14 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2021-01-13 22:32:44 +0300
commitac58ebce44e0ea4c4dabca3f4440eb21bfe3dd2a (patch)
treec7648e37dff5aba76eff33f3009d052be9f518c1 /xsd/xsd/cxx/tree/tree-header.cxx
parent818bcfa0dbbc1ef48bc3fe1f0c14d12866c51ef2 (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/cxx/tree/tree-header.cxx')
-rw-r--r--xsd/xsd/cxx/tree/tree-header.cxx38
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)