From 96f2e209e4bfcf463afe0b933735cf4f444d5609 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Wed, 30 Oct 2019 15:21:52 +0200 Subject: Add example of nested container to NEWS file --- NEWS | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) (limited to 'NEWS') diff --git a/NEWS b/NEWS index 0d001db..0f5fac2 100644 --- a/NEWS +++ b/NEWS @@ -33,7 +33,36 @@ Version 2.5.0 * The 'inverse' pragma now supports nested data members. * Helper header () for nested container emulation. - It is still fairly experimental and only supports vector>. + It is still fairly experimental and only supports vector>. For + example: + + #include + + #pragma db object + class package + { + using licenses_type = std::vector + using license_alternatives_type = std::vector + + license_alternatives_type license_alternatives; + + // Database mapping. + // + using _license_key = odb::nested_key; + using _licenses_type = std::map<_license_key, std::string>; + + #pragma db value(_license_key) + #pragma db member(_license_key::outer) column("alternative_index") + #pragma db member(_license_key::inner) column("index") + + #pragma db member(license_alternatives) id_column("") value_column("") + #pragma db member(licenses) \ + virtual(_licenses_type) \ + after(license_alternatives) \ + get(odb::nested_get (this.license_alternatives)) \ + set(odb::nested_set (this.license_alternatives, std::move (?))) \ + id_column("") key_column("") value_column("license") + }; * Database classes are now move-constructible. This means they can be returned by value from a function in C++11. -- cgit v1.1