diff options
author | Christian Gmeiner <christian.gmeiner@gmail.com> | 2010-01-09 20:09:35 +0100 |
---|---|---|
committer | Christian Gmeiner <christian.gmeiner@gmail.com> | 2010-01-09 20:09:35 +0100 |
commit | 65514506b381200bc0bd7ecb0c84d51fef5b23fe (patch) | |
tree | 2a301163dcc73a50383fa98438f62b74c71e4521 | |
parent | b4bd88286023822c67d4fde7379b82c14d2612a0 (diff) | |
download | vdr-plugin-dxr3-65514506b381200bc0bd7ecb0c84d51fef5b23fe.tar.gz vdr-plugin-dxr3-65514506b381200bc0bd7ecb0c84d51fef5b23fe.tar.bz2 |
extend Accessors template to support rw and ro variables
-rw-r--r-- | accessors.h | 21 |
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*/ |