ultimatepp/uppsrc/Core/ValueUtil.hpp
cxl d48aca5316 uppsrc: Deprectated RichValue uses replaced by RichToValue
git-svn-id: svn://ultimatepp.org/upp/trunk@10913 f0d560ea-af0d-0410-9eb7-867de7ffcac7
2017-03-07 10:59:07 +00:00

34 lines
No EOL
1.1 KiB
C++

inline
void ValueMap::Add(const Value& key, const Value& value) {
Data& d = UnShare();
d.key.Add(key);
d.value.Add(value);
}
#ifdef DEPRECATED
template <class T>
struct RawRef : public RefManager {
virtual void SetValue(void *p, const Value& v) { *(T *) p = RawValue<T>::Extract(v); }
virtual Value GetValue(const void *p) { return RawValue<T>(*(const T *) p); }
virtual int GetType() { return GetValueTypeNo<T>(); }
virtual ~RawRef() {}
};
template <class T>
Ref RawAsRef(T& x) {
return Ref(&x, &Single< RawRef<T> >());
}
template <class T>
struct RichRef : public RawRef<T> {
virtual Value GetValue(const void *p) { return RichToValue(*(T *) p); }
virtual bool IsNull(const void *p) { return UPP::IsNull(*(T *) p); }
virtual void SetValue(void *p, const Value& v) { *(T *) p = T(v); }
virtual void SetNull(void *p) { UPP::SetNull(*(T *)p); }
};
template <class T>
Ref RichAsRef(T& x) {
return Ref(&x, &Single< RichRef<T> >());
}
#endif