[#boost-urls-url_view_base-user] = xref:boost.adoc[boost]::xref:boost/urls.adoc[urls]::xref:boost/urls/url_view_base.adoc[url_view_base]::user :relfileprefix: ../../../ :mrdocs: Return the user == Synopsis Declared in `<https://www.github.com/boostorg/url/blob/develop/include/boost/url/url_view_base.hpp#L831[boost/url/url_view_base.hpp]>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<xref:boost/urls/string_token.adoc[string_token]::xref:boost/urls/string_token/StringToken.adoc[StringToken] StringToken = xref:boost/urls/string_token.adoc[string_token]::xref:boost/urls/string_token/return_string.adoc[return_string]> StringToken::result_type user(StringToken&& token = {}); ---- == Description If present, this function returns a string representing the user (which may be empty). Otherwise it returns an empty string. Any percent‐escapes in the string are decoded first. == Example [,cpp] ---- assert( url_view( "http://jane%2Ddoe:pass@example.com" ).user() == "jane-doe" ); ---- == Complexity Linear in `this‐>user().size()`. == Exception Safety Calls to allocate may throw. == BNF [,cpp] ---- userinfo = user [ ":" [ password ] ] user = *( unreserved / pct-encoded / sub-delims ) password = *( unreserved / pct-encoded / sub-delims / ":" ) ---- == Specification * https://datatracker.ietf.org/doc/html/rfc3986#section-3.2.1[] == Return Value The user as a string. == Parameters [cols=2] |=== | Name | Description | *token* | The string token to use. |=== == See Also xref:boost/urls/url_view_base/has_password.adoc[`has_password`], xref:boost/urls/url_view_base/has_userinfo.adoc[`has_userinfo`], xref:boost/urls/url_view_base/encoded_password.adoc[`encoded_password`], xref:boost/urls/url_view_base/encoded_user.adoc[`encoded_user`], xref:boost/urls/url_view_base/encoded_userinfo.adoc[`encoded_userinfo`], xref:boost/urls/url_view_base/password.adoc[`password`], xref:boost/urls/url_view_base/userinfo.adoc[`userinfo`]. [.small]#Created with https://www.mrdocs.com[MrDocs]#