@@ -57,23 +57,27 @@ class ipv4_address {
5757 // / The address in bytes in network byte order
5858 // / \returns The address in bytes
5959 [[nodiscard]] constexpr auto to_bytes () const noexcept -> std::array<unsigned char, 4> {
60- auto addr = address ();
61- return {{static_cast <unsigned char >(addr >> 24u ), static_cast <unsigned char >(addr >> 16u ),
62- static_cast <unsigned char >(addr >> 8u ), static_cast <unsigned char >(addr)}};
60+ const auto addr = address ();
61+ return {{static_cast <unsigned char >(addr >> 24u ),
62+ static_cast <unsigned char >(addr >> 16u ), // NOLINT(cppcoreguidelines-avoid-magic-numbers)
63+ static_cast <unsigned char >(addr >> 8u ),
64+ static_cast <unsigned char >(addr)}}; // NOLINT(cppcoreguidelines-avoid-magic-numbers)
6365 }
6466
6567 // / \returns The address as a string
6668 [[nodiscard]] auto serialize () const -> std::string {
6769 using namespace std ::string_literals;
6870 using namespace std ::string_view_literals;
6971
70- constexpr auto separator = [](auto i) { return (i < 4 ) ? " ." sv : " " sv; };
72+ constexpr auto separator = [](auto i) {
73+ return (i < 4 ) ? " ." sv : " " sv;
74+ }; // NOLINT(cppcoreguidelines-avoid-magic-numbers)
7175
7276 auto output = " " s;
7377 auto n = address ();
7478 for (auto i = 1U ; i <= 4U ; ++i) {
7579 output = std::format (" {}{}{}" , separator (i), n % 256 , output);
76- n >>= 8 ;
80+ n >>= 8 ; // NOLINT(cppcoreguidelines-avoid-magic-numbers)
7781 }
7882 return output;
7983 }
@@ -82,21 +86,21 @@ class ipv4_address {
8286namespace details {
8387// / Computes 256^exp efficiently using bit shifts (256 = 2^8, so 256^n = 2^(8n))
8488constexpr auto pow256 (unsigned int exp) noexcept -> std::uint64_t {
85- return 1ULL << (exp * 8 );
89+ return 1ULL << (exp * 8 ); // NOLINT(cppcoreguidelines-avoid-magic-numbers)
8690}
8791
8892constexpr auto parse_ipv4_number (std::string_view input, bool * validation_error)
8993 -> std::expected<std::uint64_t, ipv4_address_errc> {
90- auto base = 10 ;
94+ auto base = 10 ; // NOLINT(cppcoreguidelines-avoid-magic-numbers)
9195
9296 if ((input.size () >= 2 ) && (input[0 ] == ' 0' ) && (std::tolower (input[1 ], std::locale::classic ()) == ' x' )) {
9397 *validation_error |= true ;
9498 input = input.substr (2 );
95- base = 16 ;
99+ base = 16 ; // NOLINT(cppcoreguidelines-avoid-magic-numbers)
96100 } else if ((input.size () >= 2 ) && (input[0 ] == ' 0' )) {
97101 *validation_error |= true ;
98102 input = input.substr (1 );
99- base = 8 ;
103+ base = 8 ; // NOLINT(cppcoreguidelines-avoid-magic-numbers)
100104 }
101105
102106 if (input.empty ()) {
@@ -162,7 +166,9 @@ constexpr auto parse_ipv4_address(std::string_view input, bool* validation_error
162166 numbers.push_back (number.value ());
163167 }
164168
165- constexpr auto greater_than_255 = [](auto number) { return number > 255 ; };
169+ constexpr auto greater_than_255 = [](auto number) {
170+ return number > 255 ;
171+ }; // NOLINT(cppcoreguidelines-avoid-magic-numbers)
166172
167173 if (std::ranges::cend (numbers) != std::ranges::find_if (numbers, greater_than_255)) {
168174 *validation_error |= true ;
@@ -176,7 +182,7 @@ constexpr auto parse_ipv4_address(std::string_view input, bool* validation_error
176182 return std::unexpected (ipv4_address_errc::overflow);
177183 }
178184
179- if (numbers.back () >= details::pow256 (5 - numbers.size ())) {
185+ if (numbers.back () >= details::pow256 (5 - numbers.size ())) { // NOLINT(cppcoreguidelines-avoid-magic-numbers)
180186 *validation_error |= true ;
181187 return std::unexpected (ipv4_address_errc::overflow);
182188 }
@@ -186,7 +192,7 @@ constexpr auto parse_ipv4_address(std::string_view input, bool* validation_error
186192
187193 auto counter = 0UL ;
188194 for (auto && number : numbers) {
189- ipv4 += number * details::pow256 (3 - counter);
195+ ipv4 += number * details::pow256 (3 - counter); // NOLINT(cppcoreguidelines-avoid-magic-numbers)
190196 ++counter;
191197 }
192198 return ipv4_address (static_cast <unsigned int >(ipv4));
0 commit comments