aboutsummaryrefslogtreecommitdiff
path: root/query/person.hxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2011-08-04 13:29:43 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2011-08-04 13:29:43 +0200
commitf2955b7052e571eb4af0ad8194970f29e4b4ff9b (patch)
tree8b2a4e4fc37e742bd001e2fa35cfbb0c92fbe729 /query/person.hxx
parent037ecbd0b2ed37880a670de33d2ac9ead53e5acb (diff)
Add support for value wrappers
Wrapper is a class that wraps another type. Examples of wrappers are various smart pointers, holders, etc. A wrapper can be transparent or it can handle the NULL semantics. The new odb::nullable class template is a NULL wrapper that helps to add the NULL semantics to a value type. New test: common/wrapper.
Diffstat (limited to 'query/person.hxx')
-rw-r--r--query/person.hxx16
1 files changed, 16 insertions, 0 deletions
diff --git a/query/person.hxx b/query/person.hxx
index 72da079..db312f2 100644
--- a/query/person.hxx
+++ b/query/person.hxx
@@ -8,6 +8,7 @@
#include <string>
#include <odb/core.hxx>
+#include <odb/nullable.hxx>
#pragma db object
class person
@@ -20,12 +21,26 @@ public:
{
}
+ person (const std::string& first,
+ const std::string& middle,
+ const std::string& last,
+ unsigned short age)
+ : first_ (first), middle_ (middle), last_ (last), age_ (age)
+ {
+ }
+
const std::string&
first () const
{
return first_;
}
+ const odb::nullable<std::string>&
+ middle () const
+ {
+ return middle_;
+ }
+
const std::string&
last () const
{
@@ -47,6 +62,7 @@ private:
unsigned long id_;
std::string first_;
+ odb::nullable<std::string> middle_;
std::string last_;
unsigned short age_;
};