:relfileprefix: ../../../
[#boost-urls-string_token-is_token-0b]

= xref:boost.adoc[pass:[boost]]::xref:boost/urls.adoc[pass:[urls]]::xref:boost/urls/string_token.adoc[pass:[string_token]]::is_token



== Synopsis

Declared in header `<https://www.github.com/boostorg/url/blob/develop/include/boost/url/grammar/string_token.hpp#L91[boost/url/grammar/string_token.hpp,window=blank_]>`

[source,cpp,subs="verbatim,macros,-callouts"]
----
template<class T>
struct xref:boost/urls/string_token/is_token-0a.adoc[pass:[is_token]]<T, xref:boost/urls/void_t.adoc[void_t]<decltype(std::declval<T&>().prepare(
                std::declval<std::size_t>())), decltype(std::declval<T&>().result())>>
    : xref:std.adoc[std]::integral_constant<bool, std::is_convertible<decltype(std::declval<T &>().result()), typename T::result_type>::value && std::is_same<decltype(std::declval<T &>().prepare(0)), char *>::value && std::is_base_of<arg, T>::value && std::is_convertible<const volatile T *, const volatile arg *>::value>;
----



