From 4e9c246d09341a221868750a06905e02d13f67dc Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Mon, 30 Apr 2012 11:43:09 +0200 Subject: Rework polymorphic info and entry static variables Make entry file-static. Move info further down in class definition. Make both const. This helps VC++. --- odb/relational/source.cxx | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'odb/relational/source.cxx') diff --git a/odb/relational/source.cxx b/odb/relational/source.cxx index 6e864d7..0a77b74 100644 --- a/odb/relational/source.cxx +++ b/odb/relational/source.cxx @@ -437,7 +437,8 @@ traverse_object (type& c) << traits << "::map;" << endl; - os << traits << "::" << (abst ? "abstract_" : "") << "info_type" << endl + os << "const " << traits << "::" << (abst ? "abstract_" : "") << + "info_type" << endl << traits << "::info (" << endl << "typeid (" << type << ")," << endl; @@ -446,9 +447,11 @@ traverse_object (type& c) else os << "0"; + string n; + if (!abst) { - string n (class_fq_name (c)); + n = class_fq_name (c); os << "," << endl << strlit (string (n, 2, string::npos)) << "," << endl @@ -465,8 +468,8 @@ traverse_object (type& c) << endl; if (!abst) - os << traits << "::entry_type" << endl - << traits << "::entry;" + os << "static const " << traits << "::entry_type" << endl + << "polymorphic_entry_for_" << flat_name (n) << ";" << endl; } -- cgit v1.1