File indexing completed on 2025-01-18 09:41:37
0001
0002 #ifndef BOOST_MPL_AUX_COUNT_IMPL_HPP_INCLUDED
0003 #define BOOST_MPL_AUX_COUNT_IMPL_HPP_INCLUDED
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #include <boost/mpl/count_fwd.hpp>
0018 #include <boost/mpl/count_if.hpp>
0019 #include <boost/mpl/same_as.hpp>
0020 #include <boost/mpl/aux_/config/static_constant.hpp>
0021 #include <boost/mpl/aux_/config/workaround.hpp>
0022 #include <boost/mpl/aux_/traits_lambda_spec.hpp>
0023
0024 namespace boost { namespace mpl {
0025
0026 template< typename Tag > struct count_impl
0027 {
0028 template< typename Sequence, typename T > struct apply
0029 #if BOOST_WORKAROUND(BOOST_BORLANDC,BOOST_TESTED_AT(0x561))
0030 {
0031 typedef typename count_if< Sequence,same_as<T> >::type type;
0032 BOOST_STATIC_CONSTANT(int, value = BOOST_MPL_AUX_VALUE_WKND(type)::value);
0033 #else
0034 : count_if< Sequence,same_as<T> >
0035 {
0036 #endif
0037 };
0038 };
0039
0040 BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(2,count_impl)
0041
0042 }}
0043
0044 #endif