File indexing completed on 2025-09-18 08:47:26
0001
0002
0003
0004
0005
0006
0007
0008
0009 #ifndef BOOST_ITERATOR_DETAIL_EVAL_IF_DEFAULT_HPP_INCLUDED_
0010 #define BOOST_ITERATOR_DETAIL_EVAL_IF_DEFAULT_HPP_INCLUDED_
0011
0012 #include <boost/core/use_default.hpp>
0013 #include <boost/iterator/detail/type_traits/type_identity.hpp>
0014
0015 namespace boost {
0016 namespace iterators {
0017 namespace detail {
0018
0019
0020
0021
0022
0023
0024
0025 template< typename T, typename DefaultNullaryFn, typename NondefaultNullaryFn = detail::type_identity< T > >
0026 struct eval_if_default
0027 {
0028 using type = typename NondefaultNullaryFn::type;
0029 };
0030
0031 template< typename DefaultNullaryFn, typename NondefaultNullaryFn >
0032 struct eval_if_default< use_default, DefaultNullaryFn, NondefaultNullaryFn >
0033 {
0034 using type = typename DefaultNullaryFn::type;
0035 };
0036
0037 template< typename T, typename DefaultNullaryFn, typename NondefaultNullaryFn = detail::type_identity< T > >
0038 using eval_if_default_t = typename eval_if_default< T, DefaultNullaryFn, NondefaultNullaryFn >::type;
0039
0040 }
0041 }
0042 }
0043
0044 #endif