summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--xsd/cxx/tree/tree-header.cxx8
-rw-r--r--xsd/cxx/tree/tree-inline.cxx8
2 files changed, 14 insertions, 2 deletions
diff --git a/xsd/cxx/tree/tree-header.cxx b/xsd/cxx/tree/tree-header.cxx
index f576645..09bbe78 100644
--- a/xsd/cxx/tree/tree-header.cxx
+++ b/xsd/cxx/tree/tree-header.cxx
@@ -703,7 +703,13 @@ namespace CXX
// default c-tor
//
- if (options.generate_default_ctor ())
+ bool list_based (
+ ult_base.is_a<SemanticGraph::List> () ||
+ ult_base.is_a<SemanticGraph::Fundamental::NameTokens> () ||
+ ult_base.is_a<SemanticGraph::Fundamental::IdRefs> () ||
+ ult_base.is_a<SemanticGraph::Fundamental::Entities> ());
+
+ if (options.generate_default_ctor () || list_based)
{
if (doxygen)
{
diff --git a/xsd/cxx/tree/tree-inline.cxx b/xsd/cxx/tree/tree-inline.cxx
index 500ee73..d2ee0ba 100644
--- a/xsd/cxx/tree/tree-inline.cxx
+++ b/xsd/cxx/tree/tree-inline.cxx
@@ -297,7 +297,13 @@ namespace CXX
// default c-tor
//
- if (options.generate_default_ctor ())
+ bool list_based (
+ ult_base.is_a<SemanticGraph::List> () ||
+ ult_base.is_a<SemanticGraph::Fundamental::NameTokens> () ||
+ ult_base.is_a<SemanticGraph::Fundamental::IdRefs> () ||
+ ult_base.is_a<SemanticGraph::Fundamental::Entities> ());
+
+ if (options.generate_default_ctor () || list_based)
{
os << inl
<< name << "::" << endl