constexpr conversions

Signed-off-by: Rosen Penev <rosenp@gmail.com>
main
Rosen Penev 2 years ago
parent b6204ccb1d
commit e9f07e2e48

@ -74,7 +74,9 @@ class EXIV2API AsfVideo : public Image {
bool operator==(const GUIDTag& other) const; bool operator==(const GUIDTag& other) const;
// Constructor to create a GUID object by passing individual values for each attribute // Constructor to create a GUID object by passing individual values for each attribute
GUIDTag(unsigned int data1, unsigned short data2, unsigned short data3, std::array<byte, 8> data4); constexpr GUIDTag(unsigned int data1, unsigned short data2, unsigned short data3, std::array<byte, 8> data4) :
data1_(data1), data2_(data2), data3_(data3), data4_(data4) {
}
// Constructor to create a GUID object from a byte array // Constructor to create a GUID object from a byte array
explicit GUIDTag(const uint8_t* bytes); explicit GUIDTag(const uint8_t* bytes);

@ -46,10 +46,6 @@ bool AsfVideo::GUIDTag::operator==(const AsfVideo::GUIDTag& other) const {
return data1_ == other.data1_ && data2_ == other.data2_ && data3_ == other.data3_ && data4_ == other.data4_; return data1_ == other.data1_ && data2_ == other.data2_ && data3_ == other.data3_ && data4_ == other.data4_;
} }
AsfVideo::GUIDTag::GUIDTag(unsigned int data1, unsigned short data2, unsigned short data3, std::array<byte, 8> data4) :
data1_(data1), data2_(data2), data3_(data3), data4_(data4) {
}
AsfVideo::GUIDTag::GUIDTag(const uint8_t* bytes) { AsfVideo::GUIDTag::GUIDTag(const uint8_t* bytes) {
std::copy_n(bytes, DWORD, reinterpret_cast<uint8_t*>(&data1_)); std::copy_n(bytes, DWORD, reinterpret_cast<uint8_t*>(&data1_));
std::copy_n(bytes + DWORD, WORD, reinterpret_cast<uint8_t*>(&data2_)); std::copy_n(bytes + DWORD, WORD, reinterpret_cast<uint8_t*>(&data2_));
@ -92,7 +88,7 @@ bool AsfVideo::GUIDTag::operator<(const GUIDTag& other) const {
return std::lexicographical_compare(data4_.begin(), data4_.end(), other.data4_.begin(), other.data4_.end()); return std::lexicographical_compare(data4_.begin(), data4_.end(), other.data4_.begin(), other.data4_.end());
} }
const AsfVideo::GUIDTag Header(0x75B22630, 0x668E, 0x11CF, {0xA6, 0xD9, 0x00, 0xAA, 0x00, 0x62, 0xCE, 0x6C}); constexpr AsfVideo::GUIDTag Header(0x75B22630, 0x668E, 0x11CF, {0xA6, 0xD9, 0x00, 0xAA, 0x00, 0x62, 0xCE, 0x6C});
const std::map<AsfVideo::GUIDTag, std::string> GUIDReferenceTags = { const std::map<AsfVideo::GUIDTag, std::string> GUIDReferenceTags = {
//!< Top-level ASF object GUIDS //!< Top-level ASF object GUIDS

@ -5,9 +5,8 @@
using namespace Exiv2; using namespace Exiv2;
namespace { namespace {
const std::string testData(TESTDATA_PATH); constexpr auto imagePath = TESTDATA_PATH "/DSC_3079.jpg";
const std::string imagePath(testData + "/DSC_3079.jpg"); constexpr auto nonExistingImagePath = TESTDATA_PATH "/nonExisting.jpg";
const std::string nonExistingImagePath(testData + "/nonExisting.jpg");
} // namespace } // namespace
TEST(AFileIO, canBeInstantiatedWithFilePath) { TEST(AFileIO, canBeInstantiatedWithFilePath) {

Loading…
Cancel
Save