diff --git a/include/exiv2/types.hpp b/include/exiv2/types.hpp index 82ea5dfc..bd808123 100644 --- a/include/exiv2/types.hpp +++ b/include/exiv2/types.hpp @@ -461,12 +461,6 @@ namespace Exiv2 { return rc == src + N ? nullptr : rc; } - //! Template used in the COUNTOF macro to determine the size of an array - template - char (&sizer(T (&)[N]))[N]; -//! Macro to determine the size of an array -#define EXV_COUNTOF(a) (sizeof(Exiv2::sizer(a))) - //! Utility function to convert the argument of any type to a string template std::string toString(const T& arg) { diff --git a/samples/exifprint.cpp b/samples/exifprint.cpp index 65ff5e47..bc5c3d2a 100644 --- a/samples/exifprint.cpp +++ b/samples/exifprint.cpp @@ -58,7 +58,8 @@ try { std::vector keys; Exiv2::dumpLibraryInfo(std::cout,keys); return rc; - } else if ( strcmp(file,"--version-test") == 0 ) { + } + if (strcmp(file, "--version-test") == 0) { // verifies/test macro EXIV2_TEST_VERSION // described in include/exiv2/version.hpp std::cout << "EXV_PACKAGE_VERSION " << EXV_PACKAGE_VERSION << std::endl diff --git a/src/basicio.cpp b/src/basicio.cpp index ddbc81f3..89a99499 100644 --- a/src/basicio.cpp +++ b/src/basicio.cpp @@ -61,7 +61,7 @@ namespace { pos += subject.find(search, pos + replace.length()); } } -} +} // namespace namespace Exiv2 { void BasicIo::readOrThrow(byte* buf, size_t rcount, ErrorCode err) { diff --git a/src/easyaccess.cpp b/src/easyaccess.cpp index e41b7e6e..024a9855 100644 --- a/src/easyaccess.cpp +++ b/src/easyaccess.cpp @@ -16,11 +16,9 @@ namespace { @param keys Array of keys to look for @param count Number of elements in the array */ - ExifData::const_iterator findMetadatum(const ExifData& ed, - const char* keys[], - int count) + ExifData::const_iterator findMetadatum(const ExifData& ed, const char* keys[], size_t count) { - for (int i = 0; i < count; ++i) { + for (size_t i = 0; i < count; ++i) { auto pos = ed.findKey(ExifKey(keys[i])); if (pos != ed.end()) return pos; } @@ -48,7 +46,7 @@ namespace Exiv2 { "Exif.Sony2Cs2.Rotation", "Exif.Sony1MltCsA100.Rotation" }; - return findMetadatum(ed, keys, EXV_COUNTOF(keys)); + return findMetadatum(ed, keys, std::size(keys)); } ExifData::const_iterator isoSpeed(const ExifData& ed) @@ -104,10 +102,10 @@ namespace Exiv2 { }; // Find the first ISO value which is not "0" - const int cnt = EXV_COUNTOF(keys); + const size_t cnt = std::size(keys); auto md = ed.end(); int64_t iso_val = -1; - for (int idx = 0; idx < cnt; ) { + for (size_t idx = 0; idx < cnt;) { md = findMetadatum(ed, keys + idx, cnt - idx); if (md == ed.end()) break; std::ostringstream os; @@ -168,7 +166,7 @@ namespace Exiv2 { "Exif.Photo.DateTimeOriginal", "Exif.Image.DateTimeOriginal" }; - return findMetadatum(ed, keys, EXV_COUNTOF(keys)); + return findMetadatum(ed, keys, std::size(keys)); } ExifData::const_iterator flashBias(const ExifData& ed) @@ -183,7 +181,7 @@ namespace Exiv2 { "Exif.Sony1.FlashExposureComp", "Exif.Sony2.FlashExposureComp" }; - return findMetadatum(ed, keys, EXV_COUNTOF(keys)); + return findMetadatum(ed, keys, std::size(keys)); } ExifData::const_iterator exposureMode(const ExifData& ed) @@ -201,7 +199,7 @@ namespace Exiv2 { "Exif.Sony2Cs.ExposureProgram", "Exif.Sigma.ExposureMode" }; - return findMetadatum(ed, keys, EXV_COUNTOF(keys)); + return findMetadatum(ed, keys, std::size(keys)); } ExifData::const_iterator sceneMode(const ExifData& ed) @@ -222,7 +220,7 @@ namespace Exiv2 { "Exif.PentaxDng.PictureMode", "Exif.Photo.SceneCaptureType" }; - return findMetadatum(ed, keys, EXV_COUNTOF(keys)); + return findMetadatum(ed, keys, std::size(keys)); } ExifData::const_iterator macroMode(const ExifData& ed) @@ -238,7 +236,7 @@ namespace Exiv2 { "Exif.Sony1.Macro", "Exif.Sony2.Macro" }; - return findMetadatum(ed, keys, EXV_COUNTOF(keys)); + return findMetadatum(ed, keys, std::size(keys)); } ExifData::const_iterator imageQuality(const ExifData& ed) @@ -269,7 +267,7 @@ namespace Exiv2 { "Exif.Casio2.QualityMode", "Exif.Casio2.Quality" }; - return findMetadatum(ed, keys, EXV_COUNTOF(keys)); + return findMetadatum(ed, keys, std::size(keys)); } ExifData::const_iterator whiteBalance(const ExifData& ed) @@ -300,7 +298,7 @@ namespace Exiv2 { "Exif.Casio2.WhiteBalance2", "Exif.Photo.WhiteBalance" }; - return findMetadatum(ed, keys, EXV_COUNTOF(keys)); + return findMetadatum(ed, keys, std::size(keys)); } ExifData::const_iterator lensName(const ExifData& ed) @@ -323,7 +321,7 @@ namespace Exiv2 { "Exif.Panasonic.LensType", "Exif.Samsung2.LensType" }; - return findMetadatum(ed, keys, EXV_COUNTOF(keys)); + return findMetadatum(ed, keys, std::size(keys)); } ExifData::const_iterator saturation(const ExifData& ed) @@ -345,7 +343,7 @@ namespace Exiv2 { "Exif.Casio2.Saturation", "Exif.Casio2.Saturation2" }; - return findMetadatum(ed, keys, EXV_COUNTOF(keys)); + return findMetadatum(ed, keys, std::size(keys)); } ExifData::const_iterator sharpness(const ExifData& ed) @@ -367,7 +365,7 @@ namespace Exiv2 { "Exif.Casio2.Sharpness", "Exif.Casio2.Sharpness2" }; - return findMetadatum(ed, keys, EXV_COUNTOF(keys)); + return findMetadatum(ed, keys, std::size(keys)); } ExifData::const_iterator contrast(const ExifData& ed) @@ -390,7 +388,7 @@ namespace Exiv2 { "Exif.Casio2.Contrast2" }; - return findMetadatum(ed, keys, EXV_COUNTOF(keys)); + return findMetadatum(ed, keys, std::size(keys)); } ExifData::const_iterator sceneCaptureType(const ExifData& ed) @@ -399,7 +397,7 @@ namespace Exiv2 { "Exif.Photo.SceneCaptureType", "Exif.Olympus.SpecialMode" }; - return findMetadatum(ed, keys, EXV_COUNTOF(keys)); + return findMetadatum(ed, keys, std::size(keys)); } ExifData::const_iterator meteringMode(const ExifData& ed) @@ -410,7 +408,7 @@ namespace Exiv2 { "Exif.CanonCs.MeteringMode", "Exif.Sony1MltCsA100.MeteringMode" }; - return findMetadatum(ed, keys, EXV_COUNTOF(keys)); + return findMetadatum(ed, keys, std::size(keys)); } ExifData::const_iterator make(const ExifData& ed) @@ -418,7 +416,7 @@ namespace Exiv2 { static const char* keys[] = { "Exif.Image.Make" }; - return findMetadatum(ed, keys, EXV_COUNTOF(keys)); + return findMetadatum(ed, keys, std::size(keys)); } ExifData::const_iterator model(const ExifData& ed) @@ -426,7 +424,7 @@ namespace Exiv2 { static const char* keys[] = { "Exif.Image.Model" }; - return findMetadatum(ed, keys, EXV_COUNTOF(keys)); + return findMetadatum(ed, keys, std::size(keys)); } ExifData::const_iterator exposureTime(const ExifData& ed) @@ -436,7 +434,7 @@ namespace Exiv2 { "Exif.Image.ExposureTime", "Exif.Samsung2.ExposureTime" }; - return findMetadatum(ed, keys, EXV_COUNTOF(keys)); + return findMetadatum(ed, keys, std::size(keys)); } ExifData::const_iterator fNumber(const ExifData& ed) @@ -446,7 +444,7 @@ namespace Exiv2 { "Exif.Image.FNumber", "Exif.Samsung2.FNumber" }; - return findMetadatum(ed, keys, EXV_COUNTOF(keys)); + return findMetadatum(ed, keys, std::size(keys)); } ExifData::const_iterator shutterSpeedValue(const ExifData& ed) @@ -455,7 +453,7 @@ namespace Exiv2 { "Exif.Photo.ShutterSpeedValue", "Exif.Image.ShutterSpeedValue" }; - return findMetadatum(ed, keys, EXV_COUNTOF(keys)); + return findMetadatum(ed, keys, std::size(keys)); } ExifData::const_iterator apertureValue(const ExifData& ed) @@ -464,7 +462,7 @@ namespace Exiv2 { "Exif.Photo.ApertureValue", "Exif.Image.ApertureValue" }; - return findMetadatum(ed, keys, EXV_COUNTOF(keys)); + return findMetadatum(ed, keys, std::size(keys)); } ExifData::const_iterator brightnessValue(const ExifData& ed) @@ -473,7 +471,7 @@ namespace Exiv2 { "Exif.Photo.BrightnessValue", "Exif.Image.BrightnessValue" }; - return findMetadatum(ed, keys, EXV_COUNTOF(keys)); + return findMetadatum(ed, keys, std::size(keys)); } ExifData::const_iterator exposureBiasValue(const ExifData& ed) @@ -482,7 +480,7 @@ namespace Exiv2 { "Exif.Photo.ExposureBiasValue", "Exif.Image.ExposureBiasValue" }; - return findMetadatum(ed, keys, EXV_COUNTOF(keys)); + return findMetadatum(ed, keys, std::size(keys)); } ExifData::const_iterator maxApertureValue(const ExifData& ed) @@ -491,7 +489,7 @@ namespace Exiv2 { "Exif.Photo.MaxApertureValue", "Exif.Image.MaxApertureValue" }; - return findMetadatum(ed, keys, EXV_COUNTOF(keys)); + return findMetadatum(ed, keys, std::size(keys)); } ExifData::const_iterator subjectDistance(const ExifData& ed) @@ -512,7 +510,7 @@ namespace Exiv2 { "Exif.Casio.ObjectDistance", "Exif.Casio2.ObjectDistance" }; - return findMetadatum(ed, keys, EXV_COUNTOF(keys)); + return findMetadatum(ed, keys, std::size(keys)); } ExifData::const_iterator lightSource(const ExifData& ed) @@ -521,7 +519,7 @@ namespace Exiv2 { "Exif.Photo.LightSource", "Exif.Image.LightSource" }; - return findMetadatum(ed, keys, EXV_COUNTOF(keys)); + return findMetadatum(ed, keys, std::size(keys)); } ExifData::const_iterator flash(const ExifData& ed) @@ -530,7 +528,7 @@ namespace Exiv2 { "Exif.Photo.Flash", "Exif.Image.Flash" }; - return findMetadatum(ed, keys, EXV_COUNTOF(keys)); + return findMetadatum(ed, keys, std::size(keys)); } ExifData::const_iterator serialNumber(const ExifData& ed) @@ -544,7 +542,7 @@ namespace Exiv2 { "Exif.Olympus.SerialNumber2", "Exif.Sigma.SerialNumber" }; - return findMetadatum(ed, keys, EXV_COUNTOF(keys)); + return findMetadatum(ed, keys, std::size(keys)); } ExifData::const_iterator focalLength(const ExifData& ed) @@ -560,7 +558,7 @@ namespace Exiv2 { "Exif.PentaxDng.FocalLength", "Exif.Casio2.FocalLength" }; - return findMetadatum(ed, keys, EXV_COUNTOF(keys)); + return findMetadatum(ed, keys, std::size(keys)); } ExifData::const_iterator subjectArea(const ExifData& ed) @@ -569,7 +567,7 @@ namespace Exiv2 { "Exif.Photo.SubjectArea", "Exif.Image.SubjectLocation" }; - return findMetadatum(ed, keys, EXV_COUNTOF(keys)); + return findMetadatum(ed, keys, std::size(keys)); } ExifData::const_iterator flashEnergy(const ExifData& ed) @@ -578,7 +576,7 @@ namespace Exiv2 { "Exif.Photo.FlashEnergy", "Exif.Image.FlashEnergy" }; - return findMetadatum(ed, keys, EXV_COUNTOF(keys)); + return findMetadatum(ed, keys, std::size(keys)); } ExifData::const_iterator exposureIndex(const ExifData& ed) @@ -587,7 +585,7 @@ namespace Exiv2 { "Exif.Photo.ExposureIndex", "Exif.Image.ExposureIndex" }; - return findMetadatum(ed, keys, EXV_COUNTOF(keys)); + return findMetadatum(ed, keys, std::size(keys)); } ExifData::const_iterator sensingMethod(const ExifData& ed) @@ -596,7 +594,7 @@ namespace Exiv2 { "Exif.Photo.SensingMethod", "Exif.Image.SensingMethod" }; - return findMetadatum(ed, keys, EXV_COUNTOF(keys)); + return findMetadatum(ed, keys, std::size(keys)); } ExifData::const_iterator afPoint(const ExifData& ed) @@ -625,7 +623,7 @@ namespace Exiv2 { "Exif.Casio.AFPoint", "Exif.Casio2.AFPointPosition" }; - return findMetadatum(ed, keys, EXV_COUNTOF(keys)); + return findMetadatum(ed, keys, std::size(keys)); } } // namespace Exiv2 diff --git a/src/nikonmn_int.cpp b/src/nikonmn_int.cpp index 2efc1b06..fafaf189 100644 --- a/src/nikonmn_int.cpp +++ b/src/nikonmn_int.cpp @@ -350,7 +350,7 @@ namespace Exiv2::Internal { { if (value.count() >= 1) { const uint32_t focusArea = value.toUint32(0); - if (focusArea >= EXV_COUNTOF(nikonFocusarea)) { + if (focusArea >= std::size(nikonFocusarea)) { os << "Invalid value"; } else { os << nikonFocusarea[focusArea]; @@ -2963,9 +2963,9 @@ fmountlens[] = { oss.copyfmt(os); const auto temp = value.toInt64(); - printTag(os, (temp >> 4), data); + printTag(os, (temp >> 4), data); os << ", "; - printTag(os, (temp & 0x0f), data); + printTag(os, (temp & 0x0f), data); os.copyfmt(oss); os.flags(f); diff --git a/src/pentaxmn_int.hpp b/src/pentaxmn_int.hpp index a3e66dfe..560ff797 100644 --- a/src/pentaxmn_int.hpp +++ b/src/pentaxmn_int.hpp @@ -85,9 +85,11 @@ namespace Exiv2::Internal { } //! Shortcut for the printCombiTag template which requires typing the array name only once. -#define EXV_PRINT_COMBITAG(array, count, ignoredcount) printCombiTag +#define EXV_PRINT_COMBITAG(array, count, ignoredcount) \ + printCombiTag //! Shortcut for the printCombiTag template which requires typing the array name only once. -#define EXV_PRINT_COMBITAG_MULTI(array, count, ignoredcount, ignoredcountmax) printCombiTag +#define EXV_PRINT_COMBITAG_MULTI(array, count, ignoredcount, ignoredcountmax) \ + printCombiTag } // namespace Exiv2::Internal diff --git a/src/preview.cpp b/src/preview.cpp index 44c79751..32418dd3 100644 --- a/src/preview.cpp +++ b/src/preview.cpp @@ -390,10 +390,7 @@ namespace { return prop; } - PreviewId Loader::getNumLoaders() - { - return static_cast EXV_COUNTOF(loaderList_); - } + PreviewId Loader::getNumLoaders() { return PreviewId(std::size(loaderList_)); } LoaderNative::LoaderNative(PreviewId id, const Image &image, int parIdx) : Loader(id, image) diff --git a/src/tags_int.hpp b/src/tags_int.hpp index 48975252..453cd953 100644 --- a/src/tags_int.hpp +++ b/src/tags_int.hpp @@ -10,13 +10,9 @@ // ***************************************************************************** // namespace extensions -namespace Exiv2 { - class ExifData; - - namespace Internal { - -// ***************************************************************************** -// class definitions +namespace Exiv2::Internal { + // ***************************************************************************** + // class definitions //! Type to specify the IFD to which a metadata belongs enum IfdId { @@ -264,7 +260,7 @@ namespace Exiv2 { } //! Shortcut for the printTag template which requires typing the array name only once. -#define EXV_PRINT_TAG(array) printTag +#define EXV_PRINT_TAG(array) printTag /*! @brief Generic print function to translate a long value to a description @@ -297,7 +293,7 @@ namespace Exiv2 { } //! Shortcut for the printTagBitmask template which requires typing the array name only once. -#define EXV_PRINT_TAG_BITMASK(array) printTagBitmask +#define EXV_PRINT_TAG_BITMASK(array) printTagBitmask /*! @brief Generic pretty-print function to translate a controlled vocabulary value (string) @@ -317,7 +313,7 @@ namespace Exiv2 { } //! Shortcut for the printTagVocabulary template which requires typing the array name only once. -#define EXV_PRINT_VOCABULARY(array) printTagVocabulary +#define EXV_PRINT_VOCABULARY(array) printTagVocabulary template std::ostream& printTagVocabularyMulti(std::ostream& os, const Value& value, const ExifData*) @@ -343,10 +339,10 @@ namespace Exiv2 { } //! Shortcut for the printTagVocabularyMulti template which requires typing the array name only once. -#define EXV_PRINT_VOCABULARY_MULTI(array) printTagVocabularyMulti +#define EXV_PRINT_VOCABULARY_MULTI(array) printTagVocabularyMulti -// ***************************************************************************** -// free functions + // ***************************************************************************** + // free functions //! Return read-only list of built-in IFD0/1 tags const TagInfo* ifdTagList(); @@ -501,6 +497,6 @@ namespace Exiv2 { //! Calculate the exposure time from an APEX shutter speed value URational exposureTime(float shutterSpeedValue); -}} // namespace Internal, Exiv2 +} // namespace Exiv2::Internal #endif // #ifndef TAGS_INT_HPP_ diff --git a/src/tiffcomposite_int.cpp b/src/tiffcomposite_int.cpp index 6ca4e357..f5e8ec73 100644 --- a/src/tiffcomposite_int.cpp +++ b/src/tiffcomposite_int.cpp @@ -482,7 +482,7 @@ namespace Exiv2::Internal { if (arraySet_[idx].cfg_.group_ == group) { arrayCfg_ = &arraySet_[idx].cfg_; arrayDef_ = arraySet_[idx].def_; - defSize_ = arraySet_[idx].defSize_; + defSize_ = int(arraySet_[idx].defSize_); return true; } } @@ -498,7 +498,7 @@ namespace Exiv2::Internal { if (idx > -1) { arrayCfg_ = &arraySet_[idx].cfg_; arrayDef_ = arraySet_[idx].def_; - defSize_ = arraySet_[idx].defSize_; + defSize_ = int(arraySet_[idx].defSize_); } return idx > -1; } diff --git a/src/tiffcomposite_int.hpp b/src/tiffcomposite_int.hpp index 18326287..59bb3de1 100644 --- a/src/tiffcomposite_int.hpp +++ b/src/tiffcomposite_int.hpp @@ -526,13 +526,13 @@ namespace Exiv2 { //! Used (internally) to create another reference to the DataBuf reference by storage_. const std::shared_ptr& storage() { return storage_; } - private: //! @name NOT implemented //@{ //! Assignment operator. - TiffEntryBase& operator=(const TiffEntryBase& rhs); + TiffEntryBase& operator=(const TiffEntryBase& rhs) = delete; //@} + private: // DATA TiffType tiffType_; //!< Field TIFF type size_t count_{}; //!< The number of values of the indicated type @@ -901,13 +901,13 @@ namespace Exiv2 { size_t doSizeImage() const override; //@} - private: //! @name NOT implemented //@{ //! Assignment operator. - TiffDirectory& operator=(const TiffDirectory& rhs); + TiffDirectory& operator=(const TiffDirectory&) = delete; //@} + private: //! @name Private Accessors //@{ //! Write a binary directory entry for a TIFF component. @@ -986,13 +986,13 @@ namespace Exiv2 { size_t doSizeImage() const override; //@} - private: //! @name NOT implemented //@{ //! Assignment operator. - TiffSubIfd& operator=(const TiffSubIfd& rhs); + TiffSubIfd& operator=(const TiffSubIfd&) = delete; //@} + private: //! A collection of TIFF directories (IFDs) using Ifds = std::vector; @@ -1055,15 +1055,15 @@ namespace Exiv2 { // Using doSizeImage from base class //@} - private: //! @name NOT implemented //@{ //! Copy constructor. - TiffMnEntry(const TiffMnEntry& rhs); + TiffMnEntry(const TiffMnEntry&) = delete; //! Assignment operator. - TiffMnEntry& operator=(const TiffMnEntry& rhs); + TiffMnEntry& operator=(const TiffMnEntry&) = delete; //@} + private: // DATA IfdId mnGroup_; //!< New group for concrete mn TiffComponent* mn_{}; //!< The Makernote @@ -1268,7 +1268,7 @@ namespace Exiv2 { struct ArraySet { const ArrayCfg cfg_; //!< Binary array configuration const ArrayDef* def_; //!< Binary array definition array - const int defSize_; //!< Size of the array definition array + const size_t defSize_; //!< Size of the array definition array }; /*! @@ -1350,6 +1350,8 @@ namespace Exiv2 { TiffBinaryArray(const TiffBinaryArray& rhs); //@} + TiffBinaryArray& operator=(const TiffBinaryArray&) = delete; + //! @name Protected Manipulators //@{ /*! @@ -1386,12 +1388,6 @@ namespace Exiv2 { //@} private: - //! @name NOT implemented - //@{ - //! Assignment operator. - TiffBinaryArray& operator=(const TiffBinaryArray& rhs); - //@} - // DATA const CfgSelFct cfgSelFct_{}; //!< Pointer to a function to determine which cfg to use (may be 0) const ArraySet* arraySet_{}; //!< Pointer to the array set, if any (may be 0) diff --git a/src/tiffimage_int.cpp b/src/tiffimage_int.cpp index eb221adf..0a6302e4 100644 --- a/src/tiffimage_int.cpp +++ b/src/tiffimage_int.cpp @@ -11,9 +11,9 @@ #include // Shortcuts for the newTiffBinaryArray templates. -#define EXV_BINARY_ARRAY(arrayCfg, arrayDef) (newTiffBinaryArray0<&arrayCfg, EXV_COUNTOF(arrayDef), arrayDef>) +#define EXV_BINARY_ARRAY(arrayCfg, arrayDef) (newTiffBinaryArray0<&arrayCfg, std::size(arrayDef), arrayDef>) #define EXV_SIMPLE_BINARY_ARRAY(arrayCfg) (newTiffBinaryArray1<&arrayCfg>) -#define EXV_COMPLEX_BINARY_ARRAY(arraySet, cfgSelFct) (newTiffBinaryArray2) +#define EXV_COMPLEX_BINARY_ARRAY(arraySet, cfgSelFct) (newTiffBinaryArray2) namespace Exiv2::Internal { @@ -415,8 +415,8 @@ namespace Exiv2::Internal { //! Nikon AF2 configuration and definitions // https://github.com/Exiv2/exiv2/issues/646 constexpr ArraySet nikonAf2Set[] = { - { nikonAf21Cfg, nikonAf21Def, EXV_COUNTOF(nikonAf21Def) }, - { nikonAf22Cfg, nikonAf22Def, EXV_COUNTOF(nikonAf22Def) }, + {nikonAf21Cfg, nikonAf21Def, std::size(nikonAf21Def)}, + {nikonAf22Cfg, nikonAf22Def, std::size(nikonAf22Def)}, }; //! Nikon AF Fine Tune binary array - configuration @@ -575,10 +575,10 @@ namespace Exiv2::Internal { //! Nikon Flash Info Data configurations and definitions constexpr ArraySet nikonFlSet[] = { - { nikonFl1Cfg, nikonFl1Def, EXV_COUNTOF(nikonFl1Def) }, - { nikonFl2Cfg, nikonFl2Def, EXV_COUNTOF(nikonFl2Def) }, - { nikonFl3Cfg, nikonFl3Def, EXV_COUNTOF(nikonFl3Def) }, - { nikonFl7Cfg, nikonFl7Def, EXV_COUNTOF(nikonFl7Def) } + {nikonFl1Cfg, nikonFl1Def, std::size(nikonFl1Def)}, + {nikonFl2Cfg, nikonFl2Def, std::size(nikonFl2Def)}, + {nikonFl3Cfg, nikonFl3Def, std::size(nikonFl3Def)}, + {nikonFl7Cfg, nikonFl7Def, std::size(nikonFl7Def)}, }; //! Nikon Shot Info binary array - configuration 1 (D80) @@ -689,12 +689,12 @@ namespace Exiv2::Internal { }; //! Nikon Lens Data configurations and definitions constexpr ArraySet nikonSiSet[] = { - { nikonSi1Cfg, nikonSi1Def, EXV_COUNTOF(nikonSi1Def) }, - { nikonSi2Cfg, nikonSi2Def, EXV_COUNTOF(nikonSi2Def) }, - { nikonSi3Cfg, nikonSi3Def, EXV_COUNTOF(nikonSi3Def) }, - { nikonSi4Cfg, nikonSi4Def, EXV_COUNTOF(nikonSi4Def) }, - { nikonSi5Cfg, nikonSi5Def, EXV_COUNTOF(nikonSi5Def) }, - { nikonSi6Cfg, nikonSi5Def, EXV_COUNTOF(nikonSi5Def) } // uses nikonSi5Def + {nikonSi1Cfg, nikonSi1Def, std::size(nikonSi1Def)}, + {nikonSi2Cfg, nikonSi2Def, std::size(nikonSi2Def)}, + {nikonSi3Cfg, nikonSi3Def, std::size(nikonSi3Def)}, + {nikonSi4Cfg, nikonSi4Def, std::size(nikonSi4Def)}, + {nikonSi5Cfg, nikonSi5Def, std::size(nikonSi5Def)}, + {nikonSi6Cfg, nikonSi5Def, std::size(nikonSi5Def)}, // uses nikonSi5Def }; //! Nikon Lens Data binary array - configuration 1 @@ -755,10 +755,10 @@ namespace Exiv2::Internal { }; //! Nikon Lens Data configurations and definitions constexpr ArraySet nikonLdSet[] = { - { nikonLd1Cfg, nikonLdDef, EXV_COUNTOF(nikonLdDef) }, - { nikonLd2Cfg, nikonLdDef, EXV_COUNTOF(nikonLdDef) }, - { nikonLd3Cfg, nikonLdDef, EXV_COUNTOF(nikonLdDef) }, - { nikonLd4Cfg, nikonLd4Def, EXV_COUNTOF(nikonLd4Def) } + {nikonLd1Cfg, nikonLdDef, std::size(nikonLdDef)}, + {nikonLd2Cfg, nikonLdDef, std::size(nikonLdDef)}, + {nikonLd3Cfg, nikonLdDef, std::size(nikonLdDef)}, + {nikonLd4Cfg, nikonLd4Def, std::size(nikonLd4Def)}, }; //! Nikon Color Balance binary array - configuration 1 @@ -863,12 +863,12 @@ namespace Exiv2::Internal { }; //! Nikon Color Balance configurations and definitions constexpr ArraySet nikonCbSet[] = { - { nikonCb1Cfg, nikonCb1Def, EXV_COUNTOF(nikonCb1Def) }, - { nikonCb2Cfg, nikonCb2Def, EXV_COUNTOF(nikonCb2Def) }, - { nikonCb2aCfg, nikonCb2aDef, EXV_COUNTOF(nikonCb2aDef) }, - { nikonCb2bCfg, nikonCb2bDef, EXV_COUNTOF(nikonCb2bDef) }, - { nikonCb3Cfg, nikonCb3Def, EXV_COUNTOF(nikonCb3Def) }, - { nikonCb4Cfg, nikonCb4Def, EXV_COUNTOF(nikonCb4Def) } + { nikonCb1Cfg, nikonCb1Def, std::size(nikonCb1Def) }, + { nikonCb2Cfg, nikonCb2Def, std::size(nikonCb2Def) }, + { nikonCb2aCfg, nikonCb2aDef, std::size(nikonCb2aDef) }, + { nikonCb2bCfg, nikonCb2bDef, std::size(nikonCb2bDef) }, + { nikonCb3Cfg, nikonCb3Def, std::size(nikonCb3Def) }, + { nikonCb4Cfg, nikonCb4Def, std::size(nikonCb4Def) }, }; //! Minolta Camera Settings (old) binary array - configuration @@ -975,7 +975,7 @@ namespace Exiv2::Internal { //! Sony2Fp configurations and definitions constexpr ArraySet sony2FpSet[] = { - { sony2FpCfg, sony2FpDef, EXV_COUNTOF(sony2FpDef) } + {sony2FpCfg, sony2FpDef, std::size(sony2FpDef)}, }; constexpr ArrayCfg sonyMisc1Cfg = { @@ -1013,7 +1013,7 @@ namespace Exiv2::Internal { //! SonyMisc2b configurations and definitions constexpr ArraySet sonyMisc2bSet[] = { - { sonyMisc2bCfg, sonyMisc2bDef, EXV_COUNTOF(sonyMisc2bDef) } + {sonyMisc2bCfg, sonyMisc2bDef, std::size(sonyMisc2bDef)}, }; constexpr ArrayCfg sonyMisc3cCfg = { @@ -1042,7 +1042,7 @@ namespace Exiv2::Internal { //! SonyMisc3c Settings configurations and definitions constexpr ArraySet sonyMisc3cSet[] = { - { sonyMisc3cCfg, sonyMisc3cDef, EXV_COUNTOF(sonyMisc3cDef) } + {sonyMisc3cCfg, sonyMisc3cDef, std::size(sonyMisc3cDef)}, }; constexpr ArrayCfg sonySInfo1Cfg = { @@ -1115,7 +1115,7 @@ namespace Exiv2::Internal { //! Sony1 Camera Settings configurations and definitions constexpr ArraySet sony2010eSet[] = { - { sony2010eCfg, sony2010eDef, EXV_COUNTOF(sony2010eDef) } + {sony2010eCfg, sony2010eDef, std::size(sony2010eDef)}, }; //! Sony[12] Camera Settings binary array - definition @@ -1150,13 +1150,13 @@ namespace Exiv2::Internal { }; //! Sony1 Camera Settings configurations and definitions constexpr ArraySet sony1CsSet[] = { - { sony1CsCfg, sonyCsDef, EXV_COUNTOF(sonyCsDef) }, - { sony1Cs2Cfg, sonyCs2Def, EXV_COUNTOF(sonyCs2Def) } + {sony1CsCfg, sonyCsDef, std::size(sonyCsDef)}, + {sony1Cs2Cfg, sonyCs2Def, std::size(sonyCs2Def)}, }; //! Sony2 Camera Settings configurations and definitions constexpr ArraySet sony2CsSet[] = { - { sony2CsCfg, sonyCsDef, EXV_COUNTOF(sonyCsDef) }, - { sony2Cs2Cfg, sonyCs2Def, EXV_COUNTOF(sonyCs2Def) } + {sony2CsCfg, sonyCsDef, std::size(sonyCsDef)}, + {sony2Cs2Cfg, sonyCs2Def, std::size(sonyCs2Def)}, }; //! Sony Minolta Camera Settings (old) binary array - configuration diff --git a/src/types.cpp b/src/types.cpp index 8f6ba372..19e8066e 100644 --- a/src/types.cpp +++ b/src/types.cpp @@ -199,7 +199,8 @@ namespace Exiv2 { /// \todo this first check should be for <= offset if (pData_.size() < offset) { throw std::overflow_error("Overflow in Exiv2::DataBuf::c_data"); - } else if (pData_.empty() || pData_.size() == offset) { + } + if (pData_.empty() || pData_.size() == offset) { return nullptr; } return &pData_[offset]; @@ -209,7 +210,8 @@ namespace Exiv2 { /// \todo this first check should be for <= offset if (pData_.size() < offset) { throw std::overflow_error("Overflow in Exiv2::DataBuf::c_data"); - } else if (pData_.empty() || pData_.size() == offset) { + } + if (pData_.empty() || pData_.size() == offset) { return nullptr; } return &pData_[offset]; diff --git a/src/xmp.cpp b/src/xmp.cpp index 133d38d6..816d9de5 100644 --- a/src/xmp.cpp +++ b/src/xmp.cpp @@ -309,12 +309,12 @@ namespace Exiv2 { } Xmpdatum::Xmpdatum(const XmpKey& key, const Value* pValue) - : p_(new Impl(key, pValue)) + : p_(std::make_unique(key, pValue)) { } Xmpdatum::Xmpdatum(const Xmpdatum& rhs) - : Metadatum(rhs), p_(new Impl(*rhs.p_)) + : Metadatum(rhs), p_(std::make_unique(*rhs.p_)) { }