ipaddress 1.2.0
Loading...
Searching...
No Matches
ip-functions.hpp File Reference

Utility functions for IP address. More...

#include "ip-any-network.hpp"
#include "fixed-vector.hpp"

Go to the source code of this file.

Namespaces

namespace  ipaddress
 Namespace dedicated to IP addresses and networks operations.
 

Functions

template<typename FirstIp , typename LastIp >
constexpr inline auto summarize_address_range (const FirstIp &first, const LastIp &last, error_code &code) noexcept -> decltype(internal::summarize_address_range(typename internal::ip_address_type< FirstIp, LastIp >::type{first}, typename internal::ip_address_type< FirstIp, LastIp >::type{last}, code))
 Summarizes an IP address range into the smallest set of contiguous network blocks.
 
template<typename FirstIp , typename LastIp >
constexpr inline auto summarize_address_range (const FirstIp &first, const LastIp &last) -> decltype(summarize_address_range(first, last, *std::declval< error_code * >()))
 Summarizes an IP address range into the smallest set of contiguous network blocks.
 
template<typename Net , size_t N>
constexpr inline fixed_vector< Net, N > collapse_addresses (const std::array< Net, N > &nets, error_code &code) noexcept
 Collapses a collection of IP networks into the smallest set of contiguous networks.
 
template<typename Net , size_t N>
constexpr inline fixed_vector< Net, N > collapse_addresses (const Net(&nets)[N], error_code &code) noexcept
 Collapses a collection of IP networks into the smallest set of contiguous networks.
 
template<typename... Nets, typename std::enable_if< internal::is_ip_network_types< Nets... >::value, bool >::type = true>
constexpr inline auto collapse_addresses (error_code &code, const Nets &... nets) noexcept -> fixed_vector< typename internal::ip_network_type_extract< Nets... >::type, sizeof...(Nets)>
 Collapses a collection of IP networks into the smallest set of contiguous networks.
 
template<typename It >
constexpr inline auto collapse_addresses (It first, It last, error_code &code) noexcept -> std::vector< typename std::iterator_traits< It >::value_type >
 Collapses a collection of IP networks into the smallest set of contiguous networks.
 
template<typename Net , size_t N>
constexpr inline fixed_vector< Net, N > collapse_addresses (const std::array< Net, N > &nets)
 Collapses a collection of IP networks into the smallest set of contiguous networks.
 
template<typename Net , size_t N>
constexpr inline fixed_vector< Net, N > collapse_addresses (const Net(&nets)[N])
 Collapses a collection of IP networks into the smallest set of contiguous networks.
 
template<typename... Nets, typename std::enable_if< internal::is_ip_network_types< Nets... >::value, bool >::type = true>
constexpr inline auto collapse_addresses (const Nets &... nets) -> fixed_vector< typename internal::ip_network_type_extract< Nets... >::type, sizeof...(Nets)>
 Collapses a collection of IP networks into the smallest set of contiguous networks.
 
template<typename It >
constexpr inline auto collapse_addresses (It first, It last) -> std::vector< typename std::iterator_traits< It >::value_type >
 Collapses a collection of IP networks into the smallest set of contiguous networks.
 

Detailed Description

Utility functions for IP address.

Author
Vladimir Shaleev

This file contains functions for processing IP address ranges and networks. It provides functionalities summarize_address_range. These utilities enable efficient handling and manipulation of IP address data.