Merge definitions of VariantConstRef::accept() and VariantRef::accept()

This commit is contained in:
Benoit Blanchon
2022-05-22 17:03:09 +02:00
parent 3d6c328a4f
commit 37faa7ce13

View File

@ -28,6 +28,11 @@ class ObjectRef;
template <typename TData> template <typename TData>
class VariantRefBase : public VariantTag { class VariantRefBase : public VariantTag {
public: public:
template <typename TVisitor>
typename TVisitor::result_type accept(TVisitor &visitor) const {
return variantAccept(_data, visitor);
}
FORCE_INLINE bool isNull() const { FORCE_INLINE bool isNull() const {
return variantIsNull(_data); return variantIsNull(_data);
} }
@ -67,11 +72,6 @@ class VariantConstRef : public VariantRefBase<const VariantData>,
VariantConstRef() : base_type(0) {} VariantConstRef() : base_type(0) {}
explicit VariantConstRef(const VariantData *data) : base_type(data) {} explicit VariantConstRef(const VariantData *data) : base_type(data) {}
template <typename TVisitor>
typename TVisitor::result_type accept(TVisitor &visitor) const {
return variantAccept(_data, visitor);
}
template <typename T> template <typename T>
FORCE_INLINE FORCE_INLINE
typename enable_if<!is_same<T, char *>::value && !is_same<T, char>::value, typename enable_if<!is_same<T, char *>::value && !is_same<T, char>::value,
@ -265,11 +265,6 @@ class VariantRef : public VariantRefBase<VariantData>,
return VariantConstRef(_data); return VariantConstRef(_data);
} }
template <typename TVisitor>
typename TVisitor::result_type accept(TVisitor &visitor) const {
return variantAccept(_data, visitor);
}
// Change the type of the variant // Change the type of the variant
// //
// ArrayRef to<ArrayRef>() // ArrayRef to<ArrayRef>()