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).