123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- #ifndef BOOST_PFR_TRAITS_HPP
- #define BOOST_PFR_TRAITS_HPP
- #pragma once
- #include <boost/pfr/detail/config.hpp>
- #include <boost/pfr/detail/possible_reflectable.hpp>
- #include <type_traits>
- namespace boost { namespace pfr {
- template<class T, class WhatFor>
- struct is_reflectable { };
- template<class T, class WhatFor>
- struct is_reflectable<const T, WhatFor> : boost::pfr::is_reflectable<T, WhatFor> {};
- template<class T, class WhatFor>
- struct is_reflectable<volatile T, WhatFor> : boost::pfr::is_reflectable<T, WhatFor> {};
- template<class T, class WhatFor>
- struct is_reflectable<const volatile T, WhatFor> : boost::pfr::is_reflectable<T, WhatFor> {};
- template<class T, class WhatFor>
- using is_implicitly_reflectable = std::integral_constant< bool, boost::pfr::detail::possible_reflectable<T, WhatFor>(1L) >;
- template<class T, class WhatFor>
- constexpr bool is_implicitly_reflectable_v = is_implicitly_reflectable<T, WhatFor>::value;
- }}
- #endif
|