52 #ifndef __PCL_Indirect_h
53 #define __PCL_Indirect_h
78 template <
class TPtr,
class UF>
104 if ( ptr !=
nullptr )
130 template <
class T1Ptr,
class T2Ptr,
class BF>
157 if ( ptr1 !=
nullptr )
158 if ( ptr2 !=
nullptr )
159 m_function( *ptr1, *ptr2 );
183 template <
class TPtr,
class UP>
209 return ptr !=
nullptr && m_predicate( *ptr );
234 template <
class T1Ptr,
class T2Ptr,
class BP>
261 return ptr1 !=
nullptr && ptr2 !=
nullptr && m_predicate( *ptr1, *ptr2 );
276 template <
class TPtr>
285 bool operator ()( TPtr ptr1, TPtr ptr2 )
const
287 return (ptr1 !=
nullptr && ptr2 !=
nullptr) ? *ptr1 == *ptr2 : ptr1 == ptr2;
298 template <
class TPtr>
309 bool operator ()( TPtr ptr1, TPtr ptr2 )
const
312 return ptr1 !=
nullptr && (ptr2 ==
nullptr || *ptr1 < *ptr2);
A wrapper class that applies a binary function to pointers to objects.
IndirectBinaryFunction(BF f)
void operator()(T1Ptr ptr1, T2Ptr ptr2) const
IndirectBinaryFunction(const IndirectBinaryFunction< T1Ptr, T2Ptr, BF > &)=default
A wrapper class that applies a binary predicate to pointers to objects.
bool operator()(T1Ptr ptr1, T2Ptr ptr2) const
IndirectBinaryPredicate(BP p)
IndirectBinaryPredicate(const IndirectBinaryPredicate< T1Ptr, T2Ptr, BP > &)=default
A wrapper class that applies a unary function to pointers to objects.
void operator()(TPtr ptr) const
IndirectUnaryFunction(IndirectUnaryFunction< TPtr, UF > &)=default
IndirectUnaryFunction(UF f)
A wrapper class that applies a unary predicate to pointers to objects.
IndirectUnaryPredicate(const IndirectUnaryPredicate< TPtr, UP > &)=default
bool operator()(TPtr ptr) const
IndirectUnaryPredicate(UP p)
A functional class that tests two pointers for equality of the pointed objects.
A functional class that applies the less than relational operator to the objects pointed to by two po...