Просмотр исходного кода

Use `delete` instead of hiding copy constructors and assignments (#1820)

Benoit Blanchon 2 лет назад
Родитель
Сommit
b2b995edb3

+ 1 - 3
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<std::streamsize>(length));
     return static_cast<size_t>(_stream.gcount());
   }
-
- private:
-  CustomReader(const CustomReader&);
 };

+ 1 - 2
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;
 };
 

+ 2 - 3
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<char>(c));
@@ -24,9 +26,6 @@ class CustomWriter {
   }
 
  private:
-  CustomWriter(const CustomWriter&);  // non-copiable
-  CustomWriter& operator=(const CustomWriter&);
-
   std::string _str;
 };
 

+ 3 - 4
src/ArduinoJson/Document/JsonDocument.hpp

@@ -20,6 +20,9 @@ class JsonDocument : public detail::VariantOperators<const JsonDocument&> {
   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 <typename T>
@@ -303,10 +306,6 @@ class JsonDocument : public detail::VariantOperators<const JsonDocument&> {
   detail::MemoryPool _pool;
   detail::VariantData _data;
 
- private:
-  JsonDocument(const JsonDocument&);
-  JsonDocument& operator=(const JsonDocument&);
-
  protected:
   detail::MemoryPool* getPool() {
     return &_pool;

+ 2 - 3
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<TWriter> _writer;
-
- private:
-  TextFormatter& operator=(const TextFormatter&);  // cannot be assigned
 };
 
 ARDUINOJSON_END_PRIVATE_NAMESPACE