namespace std {
namespace experimental {
namespace net {
inline namespace v1 {
namespace ip {
class resolver_base
{
public:
using flags = T1;
static const flags passive;
static const flags canonical_name;
static const flags numeric_host;
static const flags numeric_service;
static const flags v4_mapped;
static const flags all_matching;
static const flags address_configured;
protected:
resolver_base();
~resolver_base();
};
} // namespace ip
} // inline namespace v1
} // namespace net
} // namespace experimental
} // namespace std
resolver_base defines a bitmask type, flags, with the bitmask elements shown in Table [tab:internet.resolver.base.requirements].
| Constant name | POSIX macro | Definition or notes |
| passive | AI_PASSIVE | Returned endpoints are intended for use as locally bound socket endpoints. |
| canonical_name | AI_CANONNAME | Determine the canonical name of the host specified in the query. |
| numeric_host | AI_NUMERICHOST | Host name should be treated as a numeric string defining an IPv4 or IPv6 address and no host name resolution should be attempted. |
| numeric_service | AI_NUMERICSERV | Service name should be treated as a numeric string defining a port number and no service name resolution should be attempted. |
| v4_mapped | AI_V4MAPPED | If the protocol is specified as an IPv6 protocol, return IPv4-mapped IPv6 addresses on finding no IPv6 addresses. |
| all_matching | AI_ALL | If used with v4_mapped, return all matching IPv6 and IPv4 addresses. |
| address_configured | AI_ADDRCONFIG | Only return IPv4 addresses if a non-loopback IPv4 address is configured for the system. Only return IPv6 addresses if a non-loopback IPv6 address is configured for the system. |