Support Class Library
A set of tools providing classes and utility
Classes | Namespaces | Functions
uniqueBy.h File Reference
#include <scl/stream/details/deprecation.h>
#include <scl/stream/details/iterator/OpStreamIterator.h>
#include <functional>
#include <memory>
#include <scl/tools/make/make.hpp>
#include <scl/tools/meta/meta.hpp>
#include <unordered_set>
#include <scl/stream/Stream.h>

Go to the source code of this file.

Classes

class  scl::stream::operators::details::UniqueByOperator< T, U >
 Unique by operation. More...
 
struct  scl::stream::operators::details::uniqueBy_toolbox< T, U >
 Toolbox tag type for unique by operations. More...
 

Namespaces

 scl
 Global namespace of the SCL.
 
 scl::stream
 Namespace of the stream API.
 
 scl::stream::operators
 Namespace for intermediate operations on streams (lazy)
 
 scl::stream::operators::details
 Namespace for implementation details of operators.
 

Functions

template<class F , class Fn = decltype( scl::tools::meta ::as_fn(std::declval<F>())), class T = scl::tools::meta ::decay_t< scl::tools::meta ::arg_t<Fn, 0>>, class U = scl::tools::meta ::decay_t< scl::tools::meta ::return_t<Fn>>>
details::uniqueBy_toolbox< T, U > scl::stream::operators::uniqueBy (F &&mapper)
 Remove duplicates from a stream. More...
 
template<class T , class U >
details::uniqueBy_toolbox< T, U > scl::stream::operators::uniqueBy_ (typename details::uniqueBy_toolbox< T, U >::map_t mapper)
 Remove duplicates from a stream by explicitly providing the type arguments. More...
 
template<class T , class U >
Stream< T > scl::stream::operators::operator| (const Stream< T > &lhs, details::uniqueBy_toolbox< T, U > rhs)
 Pipe operator overload for uniqueBy (and unique) operations. More...