mirror of
https://github.com/boostorg/lambda.git
synced 2026-01-30 20:02:15 +00:00
Remove ice_xxx.hpp header and change functionality to use mpl.
This commit is contained in:
@@ -12,18 +12,17 @@
|
||||
#ifndef BOOST_LAMBDA_RETURN_TYPE_TRAITS_HPP
|
||||
#define BOOST_LAMBDA_RETURN_TYPE_TRAITS_HPP
|
||||
|
||||
#include "boost/mpl/and.hpp"
|
||||
#include "boost/mpl/has_xxx.hpp"
|
||||
#include <boost/type_traits/ice.hpp>
|
||||
#include "boost/mpl/identity.hpp"
|
||||
#include "boost/mpl/not.hpp"
|
||||
#include "boost/mpl/or.hpp"
|
||||
|
||||
#include <cstddef> // needed for the ptrdiff_t
|
||||
|
||||
namespace boost {
|
||||
namespace lambda {
|
||||
|
||||
using ::boost::type_traits::ice_and;
|
||||
using ::boost::type_traits::ice_or;
|
||||
using ::boost::type_traits::ice_not;
|
||||
|
||||
// Much of the type deduction code for standard arithmetic types
|
||||
// from Gary Powell
|
||||
|
||||
@@ -79,7 +78,7 @@ public:
|
||||
typedef typename
|
||||
detail::IF<
|
||||
// is_protectable<Act>::value && is_lambda_functor<A>::value,
|
||||
ice_and<is_protectable<Act>::value, is_lambda_functor<A>::value>::value,
|
||||
boost::mpl::and_<boost::mpl::identity<is_protectable<Act> >, boost::mpl::identity<is_lambda_functor<A> > >::value,
|
||||
lambda_functor<
|
||||
lambda_functor_base<
|
||||
Act,
|
||||
@@ -114,8 +113,8 @@ namespace detail {
|
||||
// the args tuple
|
||||
typedef typename detail::IF_type<
|
||||
// boost::is_reference<T>::value && !boost::is_const<non_ref_T>::value,
|
||||
ice_and<boost::is_reference<T>::value,
|
||||
ice_not<boost::is_const<non_ref_T>::value>::value>::value,
|
||||
boost::mpl::and_<boost::is_reference<T>,
|
||||
boost::mpl::not_<boost::is_const<non_ref_T> > >::value,
|
||||
detail::identity_mapping<T>,
|
||||
const_copy_argument<non_ref_T> // handles funtion and array
|
||||
>::type type; // types correctly
|
||||
@@ -151,9 +150,9 @@ typedef typename
|
||||
detail::IF<
|
||||
// is_protectable<Act>::value &&
|
||||
// (is_lambda_functor<A>::value || is_lambda_functor<B>::value),
|
||||
ice_and<is_protectable<Act>::value,
|
||||
ice_or<is_lambda_functor<A>::value,
|
||||
is_lambda_functor<B>::value>::value>::value,
|
||||
boost::mpl::and_<boost::mpl::identity<is_protectable<Act> >,
|
||||
boost::mpl::or_<boost::mpl::identity<is_lambda_functor<A> >,
|
||||
boost::mpl::identity<is_lambda_functor<B> > > >::value,
|
||||
lambda_functor<
|
||||
lambda_functor_base<
|
||||
Act,
|
||||
@@ -190,9 +189,9 @@ typedef typename
|
||||
detail::IF<
|
||||
// is_protectable<other_action<comma_action> >::value && // it is protectable
|
||||
// (is_lambda_functor<A>::value || is_lambda_functor<B>::value),
|
||||
ice_and<is_protectable<other_action<comma_action> >::value, // it is protectable
|
||||
ice_or<is_lambda_functor<A>::value,
|
||||
is_lambda_functor<B>::value>::value>::value,
|
||||
boost::mpl::and_<boost::mpl::identity<is_protectable<other_action<comma_action> > >, // it is protectable
|
||||
boost::mpl::or_<boost::mpl::identity<is_lambda_functor<A> >,
|
||||
boost::mpl::identity<is_lambda_functor<B> > > >::value,
|
||||
lambda_functor<
|
||||
lambda_functor_base<
|
||||
other_action<comma_action>,
|
||||
|
||||
Reference in New Issue
Block a user