Console Library 8.0.0
A header-only library that makes C++ simple
Loading...
Searching...
No Matches
console::gen::collect< Container > Class Template Reference

容器收集适配器。 More...

#include <gen.h>

Static Private Member Functions

template<class Range, class C>
static C impl (Range r, std::false_type)
 非void版本的实现,将范围元素拷贝到指定容器。
template<class Range, class>
static std::vector< typename std::decay< typename Range::value_type >::type > impl (Range r, std::true_type)
 void版本的实现,将范围元素拷贝到std::vector。

Friends

template<class Range>
auto operator| (Range r, collect< Container >) -> decltype(collect< Container >::template impl< Range, Container >(r, std::is_same< Container, void >{}))
 管道操作符,将范围元素收集到容器中。

Detailed Description

template<class Container = void>
class console::gen::collect< Container >

容器收集适配器。

Template Parameters
Container目标容器类型,默认为void。

将范围中的元素收集到指定容器中。 当Container为void时,自动使用std::vector作为目标容器。

Member Function Documentation

◆ impl() [1/2]

template<class Container = void>
template<class Range, class C>
C console::gen::collect< Container >::impl ( Range r,
std::false_type  )
inlinestaticprivate

非void版本的实现,将范围元素拷贝到指定容器。

Template Parameters
Range范围类型。
C容器类型。
Parameters
r输入范围。
Returns
C 包含收集到的元素的容器。

◆ impl() [2/2]

template<class Container = void>
template<class Range, class>
std::vector< typename std::decay< typename Range::value_type >::type > console::gen::collect< Container >::impl ( Range r,
std::true_type  )
inlinestaticprivate

void版本的实现,将范围元素拷贝到std::vector。

Template Parameters
Range范围类型。
Parameters
r输入范围。
Returns
std::vector<typename Range::value_type> 包含收集到的元素的vector。

◆ operator|

template<class Container = void>
template<class Range>
auto operator| ( Range r,
collect< Container >  ) -> decltype(collect< Container >::template impl< Range, Container >( r, std::is_same< Container, void >{}))
friend

管道操作符,将范围元素收集到容器中。

Template Parameters
Range范围类型。
Parameters
r输入范围。
Returns
Container或std::vector 包含收集到的元素的容器。

The documentation for this class was generated from the following file: