boost::urls::params_encoded_ref::set

Set a value

Synopsis

Declared in <include/boost/url/params_encoded_ref.hpp>

iterator
set(
    pct_string_view key,
    pct_string_view value,
    ignore_case_param ic = = {});

Description

This function performs one of two actions depending on the value of `this->contains( key, ic )`.

  • If key is contained in the view then one of the matching params has its value changed to the specified value. The remaining params with a matching key are erased. Otherwise,
  • If `key` is not contained in the view, then the function apppends the param `{ key, value }`.
  • All iterators are invalidated.

    NOTE

    The strings passed in must not come from the element being replaced, or else the behavior is undefined.

    url u( "?id=42&id=69" ); u.encoded_params().set( "id", "none" ); assert( u.encoded_params().count( "id" ) == 1 ); this->count( key, ic ) == 1 && this->find( key, ic )->value == value

    Linear in `this->url().encoded_query().size()`.

    Strong guarantee.

    Calls to allocate may throw. Exceptions thrown on invalid input.

    Exceptions

    Name Thrown on
    `key`

    or `value` contain an invalid percent-encoding.

    Return Value

    An iterator to the appended or modified element.

    Parameters

    Name Description
    key

    The key to match. By default, a case-sensitive comparison is used.

    value

    The value to assign. The empty string still counts as a value. That is, `has_value` for the element is true.

    ic

    An optional parameter. If the value ignore_case is passed here, the comparison is case-insensitive.

    Created with MrDocs