File indexing completed on 2025-01-18 09:41:54
0001
0002 #ifndef BOOST_MPL_VECTOR_AUX_EMPTY_HPP_INCLUDED
0003 #define BOOST_MPL_VECTOR_AUX_EMPTY_HPP_INCLUDED
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #include <boost/mpl/empty_fwd.hpp>
0018 #include <boost/mpl/bool.hpp>
0019 #include <boost/mpl/vector/aux_/tag.hpp>
0020 #include <boost/mpl/aux_/config/typeof.hpp>
0021 #include <boost/mpl/aux_/config/ctps.hpp>
0022 #include <boost/type_traits/is_same.hpp>
0023
0024 namespace boost { namespace mpl {
0025
0026 #if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
0027
0028 template<>
0029 struct empty_impl< aux::vector_tag >
0030 {
0031 template< typename Vector > struct apply
0032 : is_same<
0033 typename Vector::lower_bound_
0034 , typename Vector::upper_bound_
0035 >
0036 {
0037 };
0038 };
0039
0040 #else
0041
0042 template<>
0043 struct empty_impl< aux::vector_tag<0> >
0044 {
0045 template< typename Vector > struct apply
0046 : true_
0047 {
0048 };
0049 };
0050
0051 #if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
0052
0053 template< long N >
0054 struct empty_impl< aux::vector_tag<N> >
0055 {
0056 template< typename Vector > struct apply
0057 : false_
0058 {
0059 };
0060 };
0061
0062 #endif
0063
0064 #endif
0065
0066 }}
0067
0068 #endif