diff --git a/src/ArduinoJson/Variant/VariantRef.hpp b/src/ArduinoJson/Variant/VariantRef.hpp index 7a6c4522..4ab82cd7 100644 --- a/src/ArduinoJson/Variant/VariantRef.hpp +++ b/src/ArduinoJson/Variant/VariantRef.hpp @@ -28,6 +28,11 @@ class ObjectRef; template class VariantRefBase : public VariantTag { public: + template + typename TVisitor::result_type accept(TVisitor &visitor) const { + return variantAccept(_data, visitor); + } + FORCE_INLINE bool isNull() const { return variantIsNull(_data); } @@ -67,11 +72,6 @@ class VariantConstRef : public VariantRefBase, VariantConstRef() : base_type(0) {} explicit VariantConstRef(const VariantData *data) : base_type(data) {} - template - typename TVisitor::result_type accept(TVisitor &visitor) const { - return variantAccept(_data, visitor); - } - template FORCE_INLINE typename enable_if::value && !is_same::value, @@ -265,11 +265,6 @@ class VariantRef : public VariantRefBase, return VariantConstRef(_data); } - template - typename TVisitor::result_type accept(TVisitor &visitor) const { - return variantAccept(_data, visitor); - } - // Change the type of the variant // // ArrayRef to()