Simplified implementation of comparison operators

This commit is contained in:
Benoit Blanchon
2020-06-13 15:42:04 +02:00
parent 6fb52c3638
commit 0e794a28a1
10 changed files with 310 additions and 312 deletions

View File

@@ -5,7 +5,8 @@
#pragma once
#include <ArduinoJson/Configuration.hpp>
#include <ArduinoJson/Operators/VariantOperators.hpp>
#include <ArduinoJson/Variant/VariantOperators.hpp>
#include <ArduinoJson/Variant/VariantShortcuts.hpp>
#include <ArduinoJson/Variant/VariantTo.hpp>
#ifdef _MSC_VER
@@ -17,6 +18,7 @@ namespace ARDUINOJSON_NAMESPACE {
template <typename TArray>
class ElementProxy : public VariantOperators<ElementProxy<TArray> >,
public VariantShortcuts<ElementProxy<TArray> >,
public Visitable {
typedef ElementProxy<TArray> this_type;
@@ -77,6 +79,11 @@ class ElementProxy : public VariantOperators<ElementProxy<TArray> >,
return getUpstreamElement();
}
template <typename T>
FORCE_INLINE int compare(const T& rhs) const {
return getUpstreamElement().template compare<T>(rhs);
}
template <typename T>
FORCE_INLINE bool is() const {
return getUpstreamElement().template is<T>();