00001
00002
00003 namespace dynamic
00004 {
00005 namespace internal
00006 {
00008 class nonroot_var
00009 {
00010 var m_value;
00011 public:
00013 nonroot_var()
00014 {
00015 }
00016
00018 nonroot_var(const var & v) : m_value(v.impl().as_nonroot())
00019 {
00020 }
00021
00023
00025 var get() const
00026 {
00027 return m_value.impl().as_root();
00028 }
00029
00031
00033 const var & ref() const
00034 {
00035 return m_value;
00036 }
00037
00039
00041 var & ref()
00042 {
00043 return m_value;
00044 }
00045
00047 bool operator<(const var&v) const
00048 {
00049 return m_value<v;
00050 }
00051 };
00052 }
00053 }