diff --git a/include/exiv2/basicio.hpp b/include/exiv2/basicio.hpp index ff5b9cb2..869a8044 100644 --- a/include/exiv2/basicio.hpp +++ b/include/exiv2/basicio.hpp @@ -711,6 +711,9 @@ class EXIV2API XPathIo : public FileIo { ~XPathIo() override; //@} + XPathIo(const XPathIo&) = delete; + XPathIo& operator=(const XPathIo&) = delete; + //! @name Manipulators //@{ /*! @@ -751,6 +754,9 @@ class EXIV2API RemoteIo : public BasicIo { ~RemoteIo() override; //@} + RemoteIo(const RemoteIo&) = delete; + RemoteIo& operator=(const RemoteIo&) = delete; + //! @name Manipulators //@{ /*! @@ -920,6 +926,7 @@ class EXIV2API HttpIo : public RemoteIo { */ explicit HttpIo(const std::string& url, size_t blockSize = 1024); + ~HttpIo() override = default; // NOT IMPLEMENTED //! Copy constructor HttpIo(const HttpIo&) = delete; @@ -964,6 +971,7 @@ class EXIV2API CurlIo : public RemoteIo { */ size_t write(BasicIo& src) override; + ~CurlIo() override = default; // NOT IMPLEMENTED //! Copy constructor CurlIo(const CurlIo&) = delete; diff --git a/include/exiv2/bmpimage.hpp b/include/exiv2/bmpimage.hpp index b4078a5e..b37d41b2 100644 --- a/include/exiv2/bmpimage.hpp +++ b/include/exiv2/bmpimage.hpp @@ -26,6 +26,7 @@ namespace Exiv2 { */ class EXIV2API BmpImage : public Image { public: + ~BmpImage() override = default; //! @name NOT Implemented //@{ //! Copy constructor diff --git a/include/exiv2/cr2image.hpp b/include/exiv2/cr2image.hpp index 9277e1cf..a7fc663d 100644 --- a/include/exiv2/cr2image.hpp +++ b/include/exiv2/cr2image.hpp @@ -71,6 +71,7 @@ class EXIV2API Cr2Image : public Image { [[nodiscard]] uint32_t pixelHeight() const override; //@} + ~Cr2Image() override = default; //! @name NOT implemented //@{ //! Copy constructor diff --git a/include/exiv2/crwimage.hpp b/include/exiv2/crwimage.hpp index 204fb79b..5a44b828 100644 --- a/include/exiv2/crwimage.hpp +++ b/include/exiv2/crwimage.hpp @@ -73,6 +73,7 @@ class EXIV2API CrwImage : public Image { [[nodiscard]] uint32_t pixelHeight() const override; //@} + ~CrwImage() override = default; //! @name NOT Implemented //@{ //! Copy constructor diff --git a/include/exiv2/datasets.hpp b/include/exiv2/datasets.hpp index 1863cf6b..2d06e9e3 100644 --- a/include/exiv2/datasets.hpp +++ b/include/exiv2/datasets.hpp @@ -132,6 +132,7 @@ class EXIV2API IptcDataSets { static constexpr uint16_t Preview = 202; //@} + ~IptcDataSets() = delete; //! Prevent copy-construction: not implemented. IptcDataSets(const IptcDataSets&) = delete; //! Prevent assignment: not implemented. @@ -263,7 +264,7 @@ class EXIV2API IptcKey : public Key { IptcKey(uint16_t tag, uint16_t record); //! Copy constructor IptcKey(const IptcKey& rhs); - IptcKey& operator=(const IptcKey&) = delete; + IptcKey& operator=(const IptcKey&) = default; //! Destructor ~IptcKey() override = default; //@} diff --git a/include/exiv2/epsimage.hpp b/include/exiv2/epsimage.hpp index 9f6e4c4e..a4b56b86 100644 --- a/include/exiv2/epsimage.hpp +++ b/include/exiv2/epsimage.hpp @@ -73,6 +73,7 @@ class EXIV2API EpsImage : public Image { [[nodiscard]] std::string mimeType() const override; //@} + ~EpsImage() override = default; //! @name NOT Implemented //@{ //! Copy constructor diff --git a/include/exiv2/gifimage.hpp b/include/exiv2/gifimage.hpp index 62e936e8..93bd422f 100644 --- a/include/exiv2/gifimage.hpp +++ b/include/exiv2/gifimage.hpp @@ -21,6 +21,7 @@ namespace Exiv2 { */ class EXIV2API GifImage : public Image { public: + ~GifImage() override = default; //! @name NOT Implemented //@{ //! Copy constructor diff --git a/include/exiv2/image.hpp b/include/exiv2/image.hpp index 4ed55905..2a968fc3 100644 --- a/include/exiv2/image.hpp +++ b/include/exiv2/image.hpp @@ -656,6 +656,7 @@ class EXIV2API ImageFactory { //! @name Creators //@{ + ~ImageFactory() = delete; //! Prevent copy construction: not implemented. ImageFactory(const ImageFactory&) = delete; ImageFactory& operator=(const ImageFactory&) = delete; diff --git a/include/exiv2/jp2image.hpp b/include/exiv2/jp2image.hpp index 4fc79950..ae1a03e6 100644 --- a/include/exiv2/jp2image.hpp +++ b/include/exiv2/jp2image.hpp @@ -64,6 +64,7 @@ class EXIV2API Jp2Image : public Image { [[nodiscard]] std::string mimeType() const override; //@} + ~Jp2Image() override = default; //! @name NOT Implemented //@{ //! Copy constructor diff --git a/include/exiv2/jpgimage.hpp b/include/exiv2/jpgimage.hpp index 168031cb..1fde606b 100644 --- a/include/exiv2/jpgimage.hpp +++ b/include/exiv2/jpgimage.hpp @@ -83,6 +83,7 @@ class EXIV2API JpegBase : public Image { void printStructure(std::ostream& out, PrintStructureOption option, int depth) override; //@} + ~JpegBase() override = default; //! @name NOT implemented //@{ //! Copy constructor @@ -264,6 +265,7 @@ class EXIV2API JpegImage : public JpegBase { [[nodiscard]] std::string mimeType() const override; //@} + ~JpegImage() override = default; // NOT Implemented //! Copy constructor JpegImage(const JpegImage&) = delete; @@ -323,6 +325,7 @@ class EXIV2API ExvImage : public JpegBase { [[nodiscard]] std::string mimeType() const override; //@} + ~ExvImage() override = default; // NOT Implemented //! Copy constructor ExvImage(const ExvImage&) = delete; diff --git a/include/exiv2/metadatum.hpp b/include/exiv2/metadatum.hpp index 6ffc2fd5..d54b2ac3 100644 --- a/include/exiv2/metadatum.hpp +++ b/include/exiv2/metadatum.hpp @@ -30,10 +30,11 @@ class EXIV2API Key { //! @name Creators //@{ + Key() = default; //! Destructor virtual ~Key() = default; //@} - + Key(const Key&) = default; //! @name Accessors //@{ /*! diff --git a/include/exiv2/mrwimage.hpp b/include/exiv2/mrwimage.hpp index 229a96eb..8abd8df8 100644 --- a/include/exiv2/mrwimage.hpp +++ b/include/exiv2/mrwimage.hpp @@ -21,6 +21,7 @@ namespace Exiv2 { */ class EXIV2API MrwImage : public Image { public: + ~MrwImage() override = default; //! @name NOT Implemented //@{ //! Copy constructor diff --git a/include/exiv2/orfimage.hpp b/include/exiv2/orfimage.hpp index 4b960f6e..89df53bf 100644 --- a/include/exiv2/orfimage.hpp +++ b/include/exiv2/orfimage.hpp @@ -21,6 +21,7 @@ namespace Exiv2 { */ class EXIV2API OrfImage : public TiffImage { public: + ~OrfImage() override = default; //! @name NOT Implemented //@{ //! Copy constructor diff --git a/include/exiv2/pgfimage.hpp b/include/exiv2/pgfimage.hpp index f2cfcc79..f5428204 100644 --- a/include/exiv2/pgfimage.hpp +++ b/include/exiv2/pgfimage.hpp @@ -54,6 +54,7 @@ class EXIV2API PgfImage : public Image { } //@} + ~PgfImage() override = default; //! @name NOT implemented //@{ //! Copy constructor diff --git a/include/exiv2/pngimage.hpp b/include/exiv2/pngimage.hpp index fe9d8361..9c618785 100644 --- a/include/exiv2/pngimage.hpp +++ b/include/exiv2/pngimage.hpp @@ -60,6 +60,7 @@ class EXIV2API PngImage : public Image { [[nodiscard]] std::string mimeType() const override; //@} + ~PngImage() override = default; //! @name NOT implemented //@{ //! Copy constructor diff --git a/include/exiv2/properties.hpp b/include/exiv2/properties.hpp index 0527d37f..36dc8179 100644 --- a/include/exiv2/properties.hpp +++ b/include/exiv2/properties.hpp @@ -71,6 +71,7 @@ class EXIV2API XmpProperties { static const XmpNsInfo* lookupNsRegistryUnsafe(const XmpNsInfo::Prefix& prefix); public: + ~XmpProperties() = delete; //! Prevent copy-construction: not implemented. XmpProperties(const XmpProperties&) = delete; //! Prevent assignment: not implemented. diff --git a/include/exiv2/psdimage.hpp b/include/exiv2/psdimage.hpp index 7aa7767c..f0585343 100644 --- a/include/exiv2/psdimage.hpp +++ b/include/exiv2/psdimage.hpp @@ -20,6 +20,7 @@ namespace Exiv2 { */ class EXIV2API PsdImage : public Image { public: + ~PsdImage() override = default; //! @name NOT Implemented //@{ //! Copy constructor diff --git a/include/exiv2/rafimage.hpp b/include/exiv2/rafimage.hpp index 867355b3..5edd9460 100644 --- a/include/exiv2/rafimage.hpp +++ b/include/exiv2/rafimage.hpp @@ -74,6 +74,7 @@ class EXIV2API RafImage : public Image { [[nodiscard]] uint32_t pixelHeight() const override; //@} + ~RafImage() override = default; //! @name NOT implemented //@{ //! Copy constructor diff --git a/include/exiv2/rw2image.hpp b/include/exiv2/rw2image.hpp index 0cfa59ee..63a94066 100644 --- a/include/exiv2/rw2image.hpp +++ b/include/exiv2/rw2image.hpp @@ -72,6 +72,7 @@ class EXIV2API Rw2Image : public Image { [[nodiscard]] uint32_t pixelHeight() const override; //@} + ~Rw2Image() override = default; //! @name NOT implemented //@{ //! Copy constructor diff --git a/include/exiv2/tags.hpp b/include/exiv2/tags.hpp index f4a8f7ed..d043cca4 100644 --- a/include/exiv2/tags.hpp +++ b/include/exiv2/tags.hpp @@ -63,6 +63,7 @@ struct EXIV2API TagInfo { //! Access to Exif group and tag lists and misc. tag reference methods, implemented as a static class. class EXIV2API ExifTags { public: + ~ExifTags() = delete; //! Prevent copy-construction: not implemented. ExifTags(const ExifTags&) = delete; //! Prevent assignment: not implemented. diff --git a/include/exiv2/tgaimage.hpp b/include/exiv2/tgaimage.hpp index dc0220f3..232addf3 100644 --- a/include/exiv2/tgaimage.hpp +++ b/include/exiv2/tgaimage.hpp @@ -20,6 +20,7 @@ namespace Exiv2 { */ class EXIV2API TgaImage : public Image { public: + ~TgaImage() override = default; //! @name NOT Implemented //@{ //! Copy constructor diff --git a/include/exiv2/tiffimage.hpp b/include/exiv2/tiffimage.hpp index 87080df3..121c9021 100644 --- a/include/exiv2/tiffimage.hpp +++ b/include/exiv2/tiffimage.hpp @@ -68,6 +68,7 @@ class EXIV2API TiffImage : public Image { uint32_t pixelHeight() const override; //@} + ~TiffImage() override = default; //! @name NOT Implemented //@{ //! Copy constructor diff --git a/include/exiv2/types.hpp b/include/exiv2/types.hpp index d4ffeb2e..03419f0f 100644 --- a/include/exiv2/types.hpp +++ b/include/exiv2/types.hpp @@ -121,6 +121,7 @@ class EXIV2API TypeInfo { TypeInfo(const TypeInfo&) = delete; //! Prevent assignment: not implemented. TypeInfo& operator=(const TypeInfo&) = delete; + ~TypeInfo() = delete; //! Return the name of the type, 0 if unknown. static const char* typeName(TypeId typeId); diff --git a/include/exiv2/value.hpp b/include/exiv2/value.hpp index df4742c5..b22b47c9 100644 --- a/include/exiv2/value.hpp +++ b/include/exiv2/value.hpp @@ -38,6 +38,7 @@ class EXIV2API Value { //@{ //! Constructor, taking a type id to initialize the base class with explicit Value(TypeId typeId); + Value(const Value&) = default; //! Virtual destructor. virtual ~Value() = default; //@} @@ -489,6 +490,7 @@ class EXIV2API CommentValue : public StringValueBase { CharsetInfo(const CharsetInfo&) = delete; //! Prevent assignment: not implemented. CharsetInfo& operator=(const CharsetInfo&) = delete; + ~CharsetInfo() = delete; //! Return the name for a charset id static const char* name(CharsetId charsetId); diff --git a/include/exiv2/xmpsidecar.hpp b/include/exiv2/xmpsidecar.hpp index 653ee8d8..4a319398 100644 --- a/include/exiv2/xmpsidecar.hpp +++ b/include/exiv2/xmpsidecar.hpp @@ -54,13 +54,13 @@ class EXIV2API XmpSidecar : public Image { [[nodiscard]] std::string mimeType() const override; //@} - private: //! @name NOT Implemented //@{ + ~XmpSidecar() override = default; //! Copy constructor - XmpSidecar(const XmpSidecar& rhs); + XmpSidecar(const XmpSidecar&) = delete; //! Assignment operator - XmpSidecar& operator=(const XmpSidecar& rhs); + XmpSidecar& operator=(const XmpSidecar&) = delete; //@} Exiv2::Dictionary dates_;