35 #ifndef _BLAZE_UTIL_ALGORITHM_H_
36 #define _BLAZE_UTIL_ALGORITHM_H_
69 template<
typename InputIterator
70 ,
typename OutputIterator >
71 OutputIterator
transfer( InputIterator first, InputIterator last, OutputIterator dest )
73 using ValueType =
typename std::iterator_traits<InputIterator>::value_type;
76 return std::move( first, last, dest );
79 return std::copy( first, last, dest );
111 for( S *
const * it=first; it!=last; ++it )
112 if( dynamic_cast<D*>( *it ) ) ++count;
143 while( first != last && !dynamic_cast<D*>( *first ) ) ++first;
Header file for basic type definitions.
size_t polymorphicCount(S *const *first, S *const *last)
Counts the pointer to objects with dynamic type D.
Definition: Algorithm.h:106
OutputIterator transfer(InputIterator first, InputIterator last, OutputIterator dest)
Transfers the elements from the given source range to the destination range.
Definition: Algorithm.h:71
#define BLAZE_CONSTRAINT_MUST_BE_STRICTLY_DERIVED_FROM(D, B)
Constraint on the inheritance relationship of a data type.In case D is not derived from B...
Definition: DerivedFrom.h:101
Compile time type check.The IsNothrowMoveAssignable type trait tests whether the expression.
Definition: IsAssignable.h:184
Namespace of the Blaze C++ math library.
Definition: Blaze.h:57
S *const * polymorphicFind(S *const *first, S *const *last)
Finds the next pointer to an object with dynamic type D.
Definition: Algorithm.h:139
Constraint on the inheritance relationship of a data type.
Header file for the IsAssignable type trait.