File indexing completed on 2025-01-18 09:53:28
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #ifndef BOOST_URL_GRAMMAR_TYPE_TRAITS_HPP
0011 #define BOOST_URL_GRAMMAR_TYPE_TRAITS_HPP
0012
0013 #include <boost/url/detail/config.hpp>
0014 #include <boost/url/error_types.hpp>
0015 #include <type_traits>
0016
0017 namespace boost {
0018 namespace urls {
0019 namespace grammar {
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046 #ifdef BOOST_URL_DOCS
0047 template<class T>
0048 using is_rule = __see_below__;
0049 #else
0050 template<class T, class = void>
0051 struct is_rule : std::false_type {};
0052
0053 template<class T>
0054 struct is_rule<T, void_t<decltype(
0055 std::declval<system::result<typename T::value_type>&>() =
0056 std::declval<T const&>().parse(
0057 std::declval<char const*&>(),
0058 std::declval<char const*>())
0059 )>> : std::is_nothrow_copy_constructible<T>
0060 {
0061 };
0062 #endif
0063
0064 }
0065 }
0066 }
0067
0068 #endif