#ifndef BOOST_DESCRIBE_DESCRIPTOR_BY_POINTER_HPP_INCLUDED #define BOOST_DESCRIBE_DESCRIPTOR_BY_POINTER_HPP_INCLUDED // Copyright 2021 Peter Dimov // Distributed under the Boost Software License, Version 1.0. // https://www.boost.org/LICENSE_1_0.txt #include #if defined(__cpp_nontype_template_parameter_auto) && __cpp_nontype_template_parameter_auto >= 201606L #include #include #include namespace boost { namespace describe { namespace detail { template constexpr bool cx_pmeq( Pm p1, Pm p2 ) { return p1 == p2; } template constexpr bool cx_pmeq( Pm1, Pm2 ) { return false; } template struct match_by_pointer { template using fn = mp11::mp_bool< cx_pmeq( D::pointer, Pm ) >; }; } // namespace detail template using descriptor_by_pointer = mp11::mp_at>>; } // namespace describe } // namespace boost #endif // __cpp_nontype_template_parameter_auto #endif // #ifndef BOOST_DESCRIBE_DESCRIPTOR_BY_POINTER_HPP_INCLUDED