12 inline CIDR::CIDR (
const InternetAddress& internetAddress, optional<unsigned int> significantBits)
13 : CIDR{internetAddress, significantBits.value_or (static_cast<unsigned int> (*internetAddress.GetAddressSize () * 8))}
15 Require (internetAddress.GetAddressFamily () == InternetAddress::AddressFamily::V4 or
16 internetAddress.GetAddressFamily () == InternetAddress::AddressFamily::V6);
18 inline InternetAddress CIDR::GetBaseInternetAddress ()
const
22 inline unsigned int CIDR::GetNumberOfSignificantBits ()
const
24 return fSignificantBits_;
26 inline strong_ordering CIDR::operator<=> (
const CIDR& rhs)
const
36 strong_ordering r = fSignificantBits_ <=> rhs.fSignificantBits_;
38 return fBaseAddress_.KeepSignificantBits (fSignificantBits_) <=> rhs.fBaseAddress_.KeepSignificantBits (fSignificantBits_);
44 inline bool CIDR::operator== (
const CIDR& rhs)
const
46 return fSignificantBits_ == rhs.fSignificantBits_ and
47 fBaseAddress_.KeepSignificantBits (fSignificantBits_) == rhs.fBaseAddress_.KeepSignificantBits (fSignificantBits_);