Added boost header
This commit is contained in:
43
test/external/boost/icl/detail/on_absorbtion.hpp
vendored
Normal file
43
test/external/boost/icl/detail/on_absorbtion.hpp
vendored
Normal file
@@ -0,0 +1,43 @@
|
||||
/*-----------------------------------------------------------------------------+
|
||||
Copyright (c) 2010-2010: Joachim Faulhaber
|
||||
+------------------------------------------------------------------------------+
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENCE.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
+-----------------------------------------------------------------------------*/
|
||||
#ifndef BOOST_ICL_TYPE_TRAITS_ON_ABSORBTION_HPP_JOFA_100915
|
||||
#define BOOST_ICL_TYPE_TRAITS_ON_ABSORBTION_HPP_JOFA_100915
|
||||
|
||||
namespace boost{ namespace icl
|
||||
{
|
||||
|
||||
template<class Type, class Combiner, bool absorbs_identities>
|
||||
struct on_absorbtion;
|
||||
|
||||
template<class Type, class Combiner>
|
||||
struct on_absorbtion<Type, Combiner, false>
|
||||
{
|
||||
typedef on_absorbtion type;
|
||||
typedef typename Type::codomain_type codomain_type;
|
||||
|
||||
static bool is_absorbable(const codomain_type&){ return false; }
|
||||
};
|
||||
|
||||
template<class Type, class Combiner>
|
||||
struct on_absorbtion<Type, Combiner, true>
|
||||
{
|
||||
typedef on_absorbtion type;
|
||||
typedef typename Type::codomain_type codomain_type;
|
||||
typedef typename Type::codomain_combine codomain_combine;
|
||||
|
||||
static bool is_absorbable(const codomain_type& co_value)
|
||||
{
|
||||
return co_value == Combiner::identity_element();
|
||||
}
|
||||
};
|
||||
|
||||
}} // namespace boost icl
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user