From a7b4f945b651d9a1044e19542fa971d04c252a23 Mon Sep 17 00:00:00 2001 From: Michael Andres Date: Fri, 3 Mar 2006 14:01:25 +0000 Subject: [PATCH] - Added Logical functor chaining _ACondition OR _BCondition: functor::Or<_ACondition, _BCondition> or_c( _ACondition conda_r, _BCondition condb_r ); --- zypp/base/Functional.h | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/zypp/base/Functional.h b/zypp/base/Functional.h index 79dff2a..a496a1d 100644 --- a/zypp/base/Functional.h +++ b/zypp/base/Functional.h @@ -257,6 +257,35 @@ namespace zypp return Not<_Condition>( cond_r ); } + /** Logical functor chaining \a _ACondition \c OR \a _BCondition. + */ + template + struct Or + { + Or( _ACondition conda_r, _BCondition condb_r ) + : _conda( conda_r ) + , _condb( condb_r ) + {} + + template + bool operator()( _Tp t ) const + { + return _conda( t ) || _condb( t ); + } + + _ACondition _conda; + _BCondition _condb; + }; + + /** Convenience function for creating a Or from two conditions + * \a conda_r OR \a condb_r. + */ + template + inline Or<_ACondition, _BCondition> or_c( _ACondition conda_r, _BCondition condb_r ) + { + return Or<_ACondition, _BCondition>( conda_r, condb_r ); + } + /** Logical functor chaining \a _ACondition \c AND \a _BCondition. */ template -- 2.7.4