Browse Source

Fixed "deprecated-copy" warning on GCC 9 (fixes #1184)

Benoit Blanchon 6 years ago
parent
commit
d2a67f362f

+ 5 - 0
.travis.yml

@@ -47,6 +47,11 @@ matrix:
           sources: ['ubuntu-toolchain-r-test']
           packages: ['g++-8']
       env: SCRIPT=test _CC=gcc-8 _CXX=g++-8
+    - addons:
+        apt:
+          sources: ['ubuntu-toolchain-r-test']
+          packages: ['g++-9']
+      env: SCRIPT=test _CC=gcc-9 _CXX=g++-9
     - addons:
         apt:
           packages: ['g++-arm-linux-gnueabihf']

+ 1 - 0
CHANGELOG.md

@@ -6,6 +6,7 @@ HEAD
 
 * Added `DeserializationOption::Filter` (issue #959)
 * Added example `JsonFilterExample.ino`
+* Fixed "deprecated-copy" warning on GCC 9 (fixes #1184)
 
 v6.14.1 (2020-01-27)
 -------

+ 1 - 0
extras/tests/JsonDocument/BasicJsonDocument.cpp

@@ -11,6 +11,7 @@ using ARDUINOJSON_NAMESPACE::addPadding;
 
 class SpyingAllocator {
  public:
+  SpyingAllocator(const SpyingAllocator& src) : _log(src._log) {}
   SpyingAllocator(std::ostream& log) : _log(log) {}
 
   void* allocate(size_t n) {

+ 3 - 0
src/ArduinoJson/Array/ElementProxy.hpp

@@ -24,6 +24,9 @@ class ElementProxy : public VariantOperators<ElementProxy<TArray> >,
   FORCE_INLINE ElementProxy(TArray array, size_t index)
       : _array(array), _index(index) {}
 
+  FORCE_INLINE ElementProxy(const ElementProxy& src)
+      : _array(src._array), _index(src._index) {}
+
   FORCE_INLINE this_type& operator=(const this_type& src) {
     getUpstreamElement().set(src.as<VariantConstRef>());
     return *this;

+ 3 - 0
src/ArduinoJson/Object/MemberProxy.hpp

@@ -24,6 +24,9 @@ class MemberProxy : public VariantOperators<MemberProxy<TObject, TStringRef> >,
   FORCE_INLINE MemberProxy(TObject variant, TStringRef key)
       : _object(variant), _key(key) {}
 
+  FORCE_INLINE MemberProxy(const MemberProxy &src)
+      : _object(src._object), _key(src._key) {}
+
   FORCE_INLINE operator VariantConstRef() const {
     return getUpstreamMember();
   }