File indexing completed on 2025-12-16 09:43:39
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011 #ifndef BOOST_ASIO_IS_APPLICABLE_PROPERTY_HPP
0012 #define BOOST_ASIO_IS_APPLICABLE_PROPERTY_HPP
0013
0014 #if defined(_MSC_VER) && (_MSC_VER >= 1200)
0015 # pragma once
0016 #endif
0017
0018 #include <boost/asio/detail/config.hpp>
0019 #include <boost/asio/detail/type_traits.hpp>
0020
0021 namespace boost {
0022 namespace asio {
0023 namespace detail {
0024
0025 template <typename T, typename Property, typename = void>
0026 struct is_applicable_property_trait : false_type
0027 {
0028 };
0029
0030 #if defined(BOOST_ASIO_HAS_VARIABLE_TEMPLATES)
0031
0032 template <typename T, typename Property>
0033 struct is_applicable_property_trait<T, Property,
0034 void_t<
0035 enable_if_t<
0036 !!Property::template is_applicable_property_v<T>
0037 >
0038 >> : true_type
0039 {
0040 };
0041
0042 #endif
0043
0044 }
0045
0046 template <typename T, typename Property, typename = void>
0047 struct is_applicable_property :
0048 detail::is_applicable_property_trait<T, Property>
0049 {
0050 };
0051
0052 #if defined(BOOST_ASIO_HAS_VARIABLE_TEMPLATES)
0053
0054 template <typename T, typename Property>
0055 constexpr const bool is_applicable_property_v
0056 = is_applicable_property<T, Property>::value;
0057
0058 #endif
0059
0060 }
0061 }
0062
0063 #endif