File indexing completed on 2025-12-16 09:44:11
0001 #ifndef BOOST_BIND_ARG_HPP_INCLUDED
0002 #define BOOST_BIND_ARG_HPP_INCLUDED
0003
0004
0005
0006 #if defined(_MSC_VER) && (_MSC_VER >= 1020)
0007 # pragma once
0008 #endif
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022 #include <boost/config.hpp>
0023 #include <boost/is_placeholder.hpp>
0024
0025 namespace boost
0026 {
0027
0028 template<bool Eq> struct _arg_eq
0029 {
0030 };
0031
0032 template<> struct _arg_eq<true>
0033 {
0034 typedef void type;
0035 };
0036
0037 template< int I > struct arg
0038 {
0039 BOOST_CONSTEXPR arg()
0040 {
0041 }
0042
0043 template< class T > BOOST_CONSTEXPR arg( T const & , typename _arg_eq< I == is_placeholder<T>::value >::type * = 0 )
0044 {
0045 }
0046 };
0047
0048 template< int I > BOOST_CONSTEXPR bool operator==( arg<I> const &, arg<I> const & )
0049 {
0050 return true;
0051 }
0052
0053 #if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
0054
0055 template< int I > struct is_placeholder< arg<I> >
0056 {
0057 enum _vt { value = I };
0058 };
0059
0060 template< int I > struct is_placeholder< arg<I> (*) () >
0061 {
0062 enum _vt { value = I };
0063 };
0064
0065 #endif
0066
0067 }
0068
0069 #endif