diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2012-01-08 17:27:40 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2012-01-08 17:27:40 +0200 |
commit | 16a4099d36ca1cdc33cf6e2b99edce796595341f (patch) | |
tree | edc43ef5218210f30c8546baaa180087683141c4 /common/composite/driver.cxx | |
parent | 7c517014fe1e1b0350b8a1580f6a016fb556c1a6 (diff) |
Add support for defining composite value type as class template instantiations
Diffstat (limited to 'common/composite/driver.cxx')
-rw-r--r-- | common/composite/driver.cxx | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/common/composite/driver.cxx b/common/composite/driver.cxx index 606f367..a3825e1 100644 --- a/common/composite/driver.cxx +++ b/common/composite/driver.cxx @@ -122,6 +122,43 @@ main (int argc, char* argv[]) t.commit (); } } + + // Test composite class template instantiation. + // + { + object o (1); + + o.comp_.num = 123; + o.comp_.str = "abc"; + o.comp_.vec.push_back (int_str_pair (123, "abc")); + o.comp_.vec.push_back (int_str_pair (234, "bcd")); + o.comp_.vec.push_back (int_str_pair (345, "cde")); + + o.pair_.first = 123; + o.pair_.second = "abc"; + + o.vec_.push_back (int_str_pair (123, "abc")); + o.vec_.push_back (int_str_pair (234, "bcd")); + o.vec_.push_back (int_str_pair (345, "cde")); + + // persist + // + { + transaction t (db->begin ()); + db->persist (o); + t.commit (); + } + + // load & check + // + { + transaction t (db->begin ()); + auto_ptr<object> o1 (db->load<object> (1)); + t.commit (); + + assert (o == *o1); + } + } } catch (const odb::exception& e) { |