00001
00002
00003 namespace dynamic
00004 {
00005 namespace internal
00006 {
00008
00010 class extender : public var_methods<extender, const var&>
00011 {
00012 public:
00013 extender(const var & obj) : m_object(obj)
00014 {
00015 }
00016
00018 template<typename T>
00019 extender & operator()(const char *m, T v)
00020 {
00021 m_object[m]=v;
00022 return *this;
00023 }
00024
00025 const var & deref() const
00026 {
00027 return m_object;
00028 }
00029
00030 private:
00031 var m_object;
00032 };
00033 }
00034 }