| Home | Libraries | People | FAQ | More

##### url_base::set_host_ipv6

Set the host to an address.

###### Synopsis

    url_base&
    set_host_ipv6(
        ipv6_address const& addr);

###### Description

The host is set to the specified IPv6 address. The host type is `host_type::ipv6`.

###### Example

    assert( url().set_host_ipv6( ipv6_address( "1::6:c0a8:1" ) ).authority().buffer() == "[1::6:c0a8:1]" );

###### Postconditions

    this->has_authority() == true && this->host_ipv6_address() == addr && this->host_type() == host_type::ipv6

###### Complexity

Linear in `this->size()`.

###### Exception Safety

Strong guarantee. Calls to allocate may throw.

###### Parameters

Name | Description
--- | ---
`addr` | The address to set.

###### BNF

    IPv6address =                            6( h16 ":" ) ls32
                /                       "::" 5( h16 ":" ) ls32
                / [               h16 ] "::" 4( h16 ":" ) ls32
                / [ *1( h16 ":" ) h16 ] "::" 3( h16 ":" ) ls32
                / [ *2( h16 ":" ) h16 ] "::" 2( h16 ":" ) ls32
                / [ *3( h16 ":" ) h16 ] "::"    h16 ":"   ls32
                / [ *4( h16 ":" ) h16 ] "::"              ls32
                / [ *5( h16 ":" ) h16 ] "::"              h16
                / [ *6( h16 ":" ) h16 ] "::"

    ls32        = ( h16 ":" h16 ) / IPv4address
                ; least-significant 32 bits of address

    h16         = 1*4HEXDIG
                ; 16 bits of address represented in hexadecimal

###### Specification

- IP Version 6 Addressing Architecture (rfc4291)
- 3.2.2. Host (rfc3986)

###### See Also

`set_encoded_host`, `set_encoded_host_address`, `set_encoded_host_name`, `set_host`, `set_host_address`, `set_host_ipv4`, `set_host_ipvfuture`, `set_host_name`.