From 12dc63c7697c2f0c338d9319c1606903f51f4a4a Mon Sep 17 00:00:00 2001 From: Dimitar Krastev Date: Mon, 20 Oct 2025 14:36:53 +0300 Subject: [PATCH 1/2] Added mac and ip literals for quick creation. --- Common++/header/IpAddress.h | 13 +++++++++++++ Common++/header/MacAddress.h | 8 ++++++++ 2 files changed, 21 insertions(+) diff --git a/Common++/header/IpAddress.h b/Common++/header/IpAddress.h index f9282a9151..7eb8484078 100644 --- a/Common++/header/IpAddress.h +++ b/Common++/header/IpAddress.h @@ -883,6 +883,19 @@ namespace pcpp std::unique_ptr m_IPv6Network; }; + namespace literals + { + inline IPv4Address operator""_ipv4(const char* addrString, std::size_t size) + { + return IPv4Address(std::string(addrString, size)); + } + + inline IPv6Address operator""_ipv6(const char* addrString, std::size_t size) + { + return IPv6Address(std::string(addrString, size)); + } + } // namespace literals + inline std::ostream& operator<<(std::ostream& oss, const pcpp::IPv4Address& ipv4Address) { oss << ipv4Address.toString(); diff --git a/Common++/header/MacAddress.h b/Common++/header/MacAddress.h index bcf6e28b83..bdf0f19a00 100644 --- a/Common++/header/MacAddress.h +++ b/Common++/header/MacAddress.h @@ -185,6 +185,14 @@ namespace pcpp std::array m_Address{}; }; + namespace literals + { + inline MacAddress operator""_mac(const char* addrString, size_t size) + { + return MacAddress(std::string(addrString, size)); + } + } // namespace literals + inline std::ostream& operator<<(std::ostream& oss, const pcpp::MacAddress& macAddress) { oss << macAddress.toString(); From 300ca2b4e312ae58632d9c21ed050953b2f65b92 Mon Sep 17 00:00:00 2001 From: Dimitar Krastev Date: Mon, 20 Oct 2025 14:39:22 +0300 Subject: [PATCH 2/2] Fixed the static MacValues to be const. --- Common++/header/MacAddress.h | 4 ++-- Common++/src/MacAddress.cpp | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Common++/header/MacAddress.h b/Common++/header/MacAddress.h index bdf0f19a00..c88dbe82ac 100644 --- a/Common++/header/MacAddress.h +++ b/Common++/header/MacAddress.h @@ -177,9 +177,9 @@ namespace pcpp bool copyToNewBuffer(uint8_t** buffer, size_t& size) const; /// A static value representing a zero value of MAC address, meaning address of value "00:00:00:00:00:00" - static MacAddress Zero; + static const MacAddress Zero; /// A static value representing a broadcast MAC address, meaning address of value "ff:ff:ff:ff:ff:ff" - static MacAddress Broadcast; + static const MacAddress Broadcast; private: std::array m_Address{}; diff --git a/Common++/src/MacAddress.cpp b/Common++/src/MacAddress.cpp index a65591bbf4..4f32599a43 100644 --- a/Common++/src/MacAddress.cpp +++ b/Common++/src/MacAddress.cpp @@ -3,9 +3,9 @@ namespace pcpp { - MacAddress MacAddress::Zero(0, 0, 0, 0, 0, 0); + const MacAddress MacAddress::Zero(0, 0, 0, 0, 0, 0); - MacAddress MacAddress::Broadcast(0xff, 0xff, 0xff, 0xff, 0xff, 0xff); + const MacAddress MacAddress::Broadcast(0xff, 0xff, 0xff, 0xff, 0xff, 0xff); std::string MacAddress::toString() const {