File indexing completed on 2025-01-18 09:41:38
0001
0002 #ifndef BOOST_MPL_AUX_SIZE_IMPL_HPP_INCLUDED
0003 #define BOOST_MPL_AUX_SIZE_IMPL_HPP_INCLUDED
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #include <boost/mpl/size_fwd.hpp>
0018 #include <boost/mpl/begin_end.hpp>
0019 #include <boost/mpl/distance.hpp>
0020 #include <boost/mpl/aux_/traits_lambda_spec.hpp>
0021 #include <boost/mpl/aux_/config/workaround.hpp>
0022
0023 namespace boost { namespace mpl {
0024
0025
0026
0027
0028 template< typename Tag >
0029 struct size_impl
0030 {
0031 template< typename Sequence > struct apply
0032 #if !BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x561))
0033 : distance<
0034 typename begin<Sequence>::type
0035 , typename end<Sequence>::type
0036 >
0037 {
0038 #else
0039 {
0040 typedef typename distance<
0041 typename begin<Sequence>::type
0042 , typename end<Sequence>::type
0043 >::type type;
0044 #endif
0045 };
0046 };
0047
0048 BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(1, size_impl)
0049
0050 }}
0051
0052 #endif