An object of type basic_resolver_results<InternetProtocol> represents a sequence of basic_resolver_entry<InternetProtocol> elements resulting from a single name resolution operation.
namespace std {
namespace experimental {
namespace net {
inline namespace v1 {
namespace ip {
template<class InternetProtocol>
class basic_resolver_results
{
public:
// types:
using protocol_type = InternetProtocol;
using endpoint_type = typename protocol_type::endpoint;
using value_type = basic_resolver_entry<protocol_type>;
using const_reference = const value_type&;
using reference = value_type&;
using const_iterator = implementation-defined;
using iterator = const_iterator;
using difference_type = ptrdiff_t;
using size_type = size_t;
// [internet.resolver.results.cons], construct / copy / destroy:
basic_resolver_results();
basic_resolver_results(const basic_resolver_results& rhs);
basic_resolver_results(basic_resolver_results&& rhs) noexcept;
basic_resolver_results& operator=(const basic_resolver_results& rhs);
basic_resolver_results& operator=(basic_resolver_results&& rhs);
~basic_resolver_results();
// [internet.resolver.results.size], size:
size_type size() const noexcept;
size_type max_size() const noexcept;
bool empty() const noexcept;
// [internet.resolver.results.access], element access:
const_iterator begin() const;
const_iterator end() const;
const_iterator cbegin() const;
const_iterator cend() const;
// [internet.resolver.results.swap], swap:
void swap(basic_resolver_results& that) noexcept;
};
// [internet.resolver.results.comparisons], basic_resolver_results comparisons:
template<class InternetProtocol>
bool operator==(const basic_resolver_results<InternetProtocol>& a,
const basic_resolver_results<InternetProtocol>& b);
template<class InternetProtocol>
bool operator!=(const basic_resolver_results<InternetProtocol>& a,
const basic_resolver_results<InternetProtocol>& b);
} // namespace ip
} // inline namespace v1
} // namespace net
} // namespace experimental
} // namespace std
The class template basic_resolver_results satisfies the requirements of a sequence container (C++ 2014 [sequence.reqmts]), except that only the operations defined for const-qualified sequence containers are supported. The class template basic_resolver_results supports forward iterators.
A default-constructed basic_resolver_results object is empty. A non-empty results object is obtained only by calling a basic_resolver object's wait or async_wait operations, or otherwise by copy construction, move construction, assignment, or swap from another non-empty results object.
basic_resolver_results();
Postconditions: size() == 0.
basic_resolver_results(const basic_resolver_results& rhs);
Postconditions: *this == rhs.
basic_resolver_results(basic_resolver_results&& rhs) noexcept;
Postconditions: *this is equal to the prior value of rhs.
basic_resolver_results& operator=(const basic_resolver_results& rhs);
Postconditions: *this == rhs.
Returns: *this.
basic_resolver_results& operator=(basic_resolver_results& rhs) noexcept;
Postconditions: *this is equal to the prior value of rhs.
Returns: *this.
size_type size() const noexcept;
Returns: The number of basic_resolver_entry elements in *this.
size_type max_size() const noexcept;
Returns: The maximum number of basic_resolver_entry elements that can be stored in *this.
bool empty() const noexcept;
Returns: size() == 0.
const_iterator begin() const;
const_iterator cbegin() const;
Returns: A starting iterator that enumerates over all the basic_resolver_entry elements stored in *this.
const_iterator end() const;
const_iterator cend() const;
Returns: A terminating iterator that enumerates over all the basic_resolver_entry elements stored in *this.
void swap(basic_resolver_results& that) noexcept;
Postconditions: *this is equal to the prior value of that, and that is equal to the prior value of *this.
template<class InternetProtocol>
bool operator==(const basic_resolver_results<InternetProtocol>& a,
const basic_resolver_results<InternetProtocol>& b);
Returns: a.size() == b.size() && equal(a.cbegin(), a.cend(), b.cbegin()).
template<class InternetProtocol>
bool operator!=(const basic_resolver_results<InternetProtocol>& a,
const basic_resolver_results<InternetProtocol>& b);
Returns: !(a == b).