aboutsummaryrefslogtreecommitdiff
path: root/odb/relational/header.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'odb/relational/header.hxx')
-rw-r--r--odb/relational/header.hxx29
1 files changed, 17 insertions, 12 deletions
diff --git a/odb/relational/header.hxx b/odb/relational/header.hxx
index 89ef664..3e0480f 100644
--- a/odb/relational/header.hxx
+++ b/odb/relational/header.hxx
@@ -747,8 +747,8 @@ namespace relational
: id_image_member_ ("id_"),
version_image_member_ ("version_"),
discriminator_image_member_ ("discriminator_"),
- query_columns_type_ (false, true),
- pointer_query_columns_type_ (true, true)
+ query_columns_type_ (false, true, false),
+ pointer_query_columns_type_ (true, true, false)
{
}
@@ -758,8 +758,8 @@ namespace relational
id_image_member_ ("id_"),
version_image_member_ ("version_"),
discriminator_image_member_ ("discriminator_"),
- query_columns_type_ (false, true),
- pointer_query_columns_type_ (true, true)
+ query_columns_type_ (false, true, false),
+ pointer_query_columns_type_ (true, true, false)
{
}
@@ -823,7 +823,8 @@ namespace relational
typedef class2 base;
class2 ()
- : query_columns_type_ (false, true),
+ : query_columns_type_ (false, true, false),
+ query_columns_type_inst_ (false, false, true),
view_query_columns_type_ (true)
{
}
@@ -831,7 +832,8 @@ namespace relational
class2 (class_ const&)
: root_context (), //@@ -Wextra
context (),
- query_columns_type_ (false, true),
+ query_columns_type_ (false, true, false),
+ query_columns_type_inst_ (false, false, true),
view_query_columns_type_ (true)
{
}
@@ -855,19 +857,21 @@ namespace relational
{
if (options.generate_query ())
{
- bool has_ptr (has_a (c, test_pointer | include_base));
-
- if (has_ptr)
- os << "// " << class_name (c) << endl
- << "//" << endl;
+ os << "// " << class_name (c) << endl
+ << "//" << endl;
// query_columns
//
// If we don't have any pointers, then query_columns is generated
// in pass 1 (see the comment in class1 for details).
//
- if (has_ptr)
+ if (has_a (c, test_pointer | include_base))
query_columns_type_->traverse (c);
+
+ // Generate extern template declarations.
+ //
+ if (multi_dynamic)
+ query_columns_type_inst_->traverse (c);
}
// Move header comment out of if-block if adding any code here.
@@ -896,6 +900,7 @@ namespace relational
private:
instance<query_columns_type> query_columns_type_;
+ instance<query_columns_type> query_columns_type_inst_;
instance<view_query_columns_type> view_query_columns_type_;
};