From b2b995edb3266830ccc25ff6c7a9eb1c48a69508 Mon Sep 17 00:00:00 2001 From: Benoit Blanchon Date: Fri, 17 Feb 2023 10:58:02 +0100 Subject: [PATCH] Use `delete` instead of hiding copy constructors and assignments (#1820) --- extras/tests/Helpers/CustomReader.hpp | 4 +--- extras/tests/JsonDocument/BasicJsonDocument.cpp | 3 +-- extras/tests/JsonSerializer/CustomWriter.cpp | 5 ++--- src/ArduinoJson/Document/JsonDocument.hpp | 7 +++---- src/ArduinoJson/Json/TextFormatter.hpp | 5 ++--- 5 files changed, 9 insertions(+), 15 deletions(-) diff --git a/extras/tests/Helpers/CustomReader.hpp b/extras/tests/Helpers/CustomReader.hpp index 4f29c044..da19d3fb 100644 --- a/extras/tests/Helpers/CustomReader.hpp +++ b/extras/tests/Helpers/CustomReader.hpp @@ -11,6 +11,7 @@ class CustomReader { public: CustomReader(const char* input) : _stream(input) {} + CustomReader(const CustomReader&) = delete; int read() { return _stream.get(); @@ -20,7 +21,4 @@ class CustomReader { _stream.read(buffer, static_cast(length)); return static_cast(_stream.gcount()); } - - private: - CustomReader(const CustomReader&); }; diff --git a/extras/tests/JsonDocument/BasicJsonDocument.cpp b/extras/tests/JsonDocument/BasicJsonDocument.cpp index 658d2422..9f034f07 100644 --- a/extras/tests/JsonDocument/BasicJsonDocument.cpp +++ b/extras/tests/JsonDocument/BasicJsonDocument.cpp @@ -12,6 +12,7 @@ class SpyingAllocator { public: SpyingAllocator(const SpyingAllocator& src) : _log(src._log) {} SpyingAllocator(std::ostream& log) : _log(log) {} + SpyingAllocator& operator=(const SpyingAllocator& src) = delete; void* allocate(size_t n) { _log << "A" << n; @@ -23,8 +24,6 @@ class SpyingAllocator { } private: - SpyingAllocator& operator=(const SpyingAllocator& src); - std::ostream& _log; }; diff --git a/extras/tests/JsonSerializer/CustomWriter.cpp b/extras/tests/JsonSerializer/CustomWriter.cpp index 8a685c04..b6d8be72 100644 --- a/extras/tests/JsonSerializer/CustomWriter.cpp +++ b/extras/tests/JsonSerializer/CustomWriter.cpp @@ -8,6 +8,8 @@ class CustomWriter { public: CustomWriter() {} + CustomWriter(const CustomWriter&) = delete; + CustomWriter& operator=(const CustomWriter&) = delete; size_t write(uint8_t c) { _str.append(1, static_cast(c)); @@ -24,9 +26,6 @@ class CustomWriter { } private: - CustomWriter(const CustomWriter&); // non-copiable - CustomWriter& operator=(const CustomWriter&); - std::string _str; }; diff --git a/src/ArduinoJson/Document/JsonDocument.hpp b/src/ArduinoJson/Document/JsonDocument.hpp index d8efdf51..301fa7ba 100644 --- a/src/ArduinoJson/Document/JsonDocument.hpp +++ b/src/ArduinoJson/Document/JsonDocument.hpp @@ -20,6 +20,9 @@ class JsonDocument : public detail::VariantOperators { friend class detail::VariantAttorney; public: + JsonDocument(const JsonDocument&) = delete; + JsonDocument& operator=(const JsonDocument&) = delete; + // Casts the root to the specified type. // https://arduinojson.org/v6/api/jsondocument/as/ template @@ -303,10 +306,6 @@ class JsonDocument : public detail::VariantOperators { detail::MemoryPool _pool; detail::VariantData _data; - private: - JsonDocument(const JsonDocument&); - JsonDocument& operator=(const JsonDocument&); - protected: detail::MemoryPool* getPool() { return &_pool; diff --git a/src/ArduinoJson/Json/TextFormatter.hpp b/src/ArduinoJson/Json/TextFormatter.hpp index e896f8f9..6e319aa5 100644 --- a/src/ArduinoJson/Json/TextFormatter.hpp +++ b/src/ArduinoJson/Json/TextFormatter.hpp @@ -22,6 +22,8 @@ class TextFormatter { public: explicit TextFormatter(TWriter writer) : _writer(writer) {} + TextFormatter& operator=(const TextFormatter&) = delete; + // Returns the number of bytes sent to the TWriter implementation. size_t bytesWritten() const { return _writer.count(); @@ -166,9 +168,6 @@ class TextFormatter { protected: CountingDecorator _writer; - - private: - TextFormatter& operator=(const TextFormatter&); // cannot be assigned }; ARDUINOJSON_END_PRIVATE_NAMESPACE