summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Gmeiner <christian.gmeiner@gmail.com>2010-01-09 20:09:35 +0100
committerChristian Gmeiner <christian.gmeiner@gmail.com>2010-01-09 20:09:35 +0100
commit65514506b381200bc0bd7ecb0c84d51fef5b23fe (patch)
tree2a301163dcc73a50383fa98438f62b74c71e4521
parentb4bd88286023822c67d4fde7379b82c14d2612a0 (diff)
downloadvdr-plugin-dxr3-65514506b381200bc0bd7ecb0c84d51fef5b23fe.tar.gz
vdr-plugin-dxr3-65514506b381200bc0bd7ecb0c84d51fef5b23fe.tar.bz2
extend Accessors template to support rw and ro variables
-rw-r--r--accessors.h21
1 files changed, 19 insertions, 2 deletions
diff --git a/accessors.h b/accessors.h
index 708b266..8c6391e 100644
--- a/accessors.h
+++ b/accessors.h
@@ -31,10 +31,15 @@
// * http://www.kirit.com/C%2B%2B%20killed%20the%20get%20%26%20set%20accessors
// * http://www.kirit.com/C%2B%2B%20killed%20the%20get%20%26%20set%20accessors/A%20simple%20meta-accessor
+enum Accessor_type { rw, ro };
+
+template<typename T, Accessor_type = rw >
+class Accessors;
+
template<typename T>
-class Accessors {
+class Accessors<T, rw> {
public:
- Accessors() {}
+ Accessors<T, rw>() {}
explicit Accessors(const T &t) : m_t(t) {}
const T &operator() () const { return m_t; }
@@ -44,4 +49,16 @@ private:
T m_t;
};
+template<typename T>
+class Accessors<T, ro> {
+public:
+ Accessors<T, ro>() {}
+ explicit Accessors(const T &t) : m_t(t) {}
+
+ const T &operator() () const { return m_t; }
+
+private:
+ T m_t;
+};
+
#endif /*ACCESSORS_H*/