50 template <
class Derived,
class T>
87 if (
done())
return *
this;
97 if (
done())
return *
this;
139 return iterator(
static_cast<const Derived &
>(*
this));
160 bool done() {
return static_cast<Derived &
>(*this).done(); }
166 T current() {
return static_cast<Derived &
>(*this).current(); }
171 void advance() {
static_cast<Derived &
>(*this).advance(); }
179 template <
class Derived,
class T>
189 template <
class Derived,
class T>
204 template <
class Derived,
207 class Traits = std::char_traits<CharT>>
208 std::basic_ostream<CharT, Traits> &
213 for (
auto it =
gen.begin(); it !=
gen.end(); ++it) {
215 os << CharT(
','), os << CharT(
' ');
227 template <
class Derived,
230 class Traits = std::char_traits<CharT>>
231 std::basic_ostream<CharT, Traits> &
232 operator<<(std::basic_ostream<CharT, Traits> &os,
233 const Generator<Derived, T> &gen) {
242 template <
class Iter>
244 typename std::iterator_traits<Iter>::value_type> {
249 using value_type =
typename std::iterator_traits<Iter>::value_type;
263 template <
class Container>
309 template <
class Iterator>
317 template <
class Container>
318 List(
const Container &container) :
445 template <
class Iterator>
453 template <
class Container>
525 template <
class Gen,
class Func>
528 typename std::decay<decltype(std::declval<Func>()(
529 std::declval<typename Gen::iterator::value_type>()))>::
534 typename std::decay<
decltype(
func(
gen.current()))>::type;
567 template <
class Gen,
class Pred>
569 typename Gen::iterator::value_type> {
579 while (!
gen.done()) {
619 return gen.current();
677 :
public Generator<Drop<Gen>, typename Gen::iterator::value_type> {
686 for (
size_t i = 0; i <
count && !
gen.done(); i++)
gen.advance();
713 return gen.current();
721 if (!
gen.done())
gen.advance();
732 std::pair<size_t, typename Gen::iterator::value_type>> {
754 return std::make_pair(
index,
gen.current());
770 template <
class Func>
772 decltype(std::declval<Func>()())> {
806 template <
class Gen1,
class Gen2>
808 std::pair<typename Gen1::value_type,
809 typename Gen2::value_type>> {
831 std::pair<typename Gen1::value_type, typename Gen2::value_type>
833 return std::make_pair(
gen1.current(),
gen2.current());
850 template <
class Gen,
class Pred>
852 :
public Generator<TakeWhile<Gen, Pred>, typename Gen::value_type> {
898 template <
class Gen,
class Pred>
900 :
public Generator<DropWhile<Gen, Pred>, typename Gen::value_type> {
943 template <
class Iter>
954 template <
class Container>
956 return {std::begin(container), std::end(container)};
977 template <
class Iterator>
978 List<typename std::decay<typename Iterator::value_type>::type>
979 list(Iterator begin, Iterator end) {
981 typename std::decay<typename Iterator::value_type>::type>(
991 template <
class Container>
994 std::begin(container), std::end(container));
1062 template <
class Iterator>
1063 Cycle<typename std::decay<typename Iterator::value_type>::type>
1066 typename std::decay<typename Iterator::value_type>::type>(
1076 template <
class Container>
1077 Cycle<typename Container::value_type>
1080 typename std::decay<typename Container::value_type>::type>(
1081 container.begin(), container.end());
1094 counter(T start = T{0},
T step =
T{1},
size_t times = size_t(-1)) {
1102 template <
class Func>
1109 template <
class Gen>
1121 template <
class Func>
1130 template <
class Pred>
1137 template <
class Gen>
1149 template <
class Pred>
1163 template <
class Gen>
1187 template <
class Gen>
1209 template <
class Gen>
1214 template <
class Gen>
1228 template <
class Func>
1241 template <
class Gen1,
class Gen2>
1242 Zip<typename std::decay<Gen1>::type,
typename std::decay<Gen2>::type>
1245 typename std::decay<Gen2>::type>(
1246 std::forward<Gen1>(g1), std::forward<Gen2>(g2));
1252 template <
class Pred>
1259 template <
class Gen>
1270 template <
class Pred>
1278 template <
class Pred>
1285 template <
class Gen>
1296 template <
class Pred>
1307 template <
class Container =
void>
1317 template <
class Range,
class C>
1329 template <
class Range,
class>
1331 typename std::decay<typename Range::value_type>::type>
1343 template <
class Range>
1346 r, std::is_same<Container, void>{})) {
1348 r, std::is_same<Container, void>{});
1356 template <
class Iterator>
1363 template <
class Range>
1375 template <
class Iterator>
1388 template <
class Gen1,
class Gen2>
1390 std::forward<Gen1>(g1), std::forward<Gen2>(g2))) {
1391 return gen::zip(std::forward<Gen1>(g1), std::forward<Gen2>(g2));
1502 operator()(T x)
const ->
typename std::decay<
decltype(++x)>::type {
1520 operator()(T x)
const ->
typename std::decay<
decltype(--x)>::type {
1589 return std::sqrt(x);
1640 return std::to_string(x);
1854 template <
class Int>
1856 if (n <= 1)
return false;
1857 for (
size_t i = 2; i * i <= n; ++i)
1858 if (n % i == 0)
return false;
1870 template <
class P,
typename Q>
1882 return p(x) &&
q(x);
1891 template <
class P,
typename Q>
1903 return p(x) ||
q(x);
1931 template <
class Class,
class Mem>
1965 template <
class Pair>
1982 template <
class Pair>
2010 if (
last == x)
return false;
2047 return static_cast<T>(std::forward<U>(x));
2148 template <
class P,
typename Q>
2156 template <
class P,
typename Q>
2172 template <
class Class,
typename Mem>
2181 template <
class P,
class Q>
2190 template <
class P,
class Q>
2209 template <
class F,
class G>
2234 template <
class F,
class G>
2247 template <
class F,
class... Rest>
2261 template <
class F,
class G>
生成器迭代器类,实现输入迭代器接口。
Definition gen.h:56
std::ptrdiff_t difference_type
Definition gen.h:63
void pointer
Definition gen.h:62
iterator & operator++()
前缀自增操作符,移动到下一个元素。
Definition gen.h:86
bool done()
检查生成器是否已完成。
Definition gen.h:131
std::input_iterator_tag iterator_category
Definition gen.h:64
reference operator*()
解引用操作符,获取当前值。
Definition gen.h:77
Derived d
Definition gen.h:57
bool operator==(const iterator &)
相等比较操作符。
Definition gen.h:107
const iterator operator++(int)
后缀自增操作符,移动到下一个元素。
Definition gen.h:96
T reference
Definition gen.h:61
iterator(const Derived &d)
构造函数,使用派生类引用初始化迭代器。
Definition gen.h:70
bool operator!=(const iterator &)
不等比较操作符。
Definition gen.h:113
T next()
获取当前值并移动到下一个位置。
Definition gen.h:120
T value_type
Definition gen.h:60
生成器模板类,用于创建可迭代的序列生成器。
Definition gen.h:51
iterator begin() const
获取开始迭代器。
Definition gen.h:146
bool done()
检查生成器是否已完成。
Definition gen.h:160
T current()
获取当前值。
Definition gen.h:166
iterator iter() const
获取生成器的迭代器对象。
Definition gen.h:138
T value_type
生成器产生的值类型。
Definition gen.h:154
iterator end() const
获取结束迭代器。
Definition gen.h:152
void advance()
推进生成器到下一个位置。
Definition gen.h:171
StopIteration(const std::string &msg)
构造 StopIteration。
Definition csexc.h:180
size_t max_count
Definition gen.h:482
void advance()
向前移动一步。
Definition gen.h:514
T curr
Definition gen.h:480
Counter(T start=T{0}, T step=T{1}, size_t times=size_t(-1))
构造函数,创建有限计数器。
Definition gen.h:492
T current()
获取当前值。
Definition gen.h:508
T step
Definition gen.h:481
bool done()
检查生成器是否已完成。
Definition gen.h:500
size_t count
Definition gen.h:483
循环生成器,无限循环遍历给定列表。
Definition gen.h:428
bool done()
检查生成器是否已完成。
Definition gen.h:461
T current()
获取当前值。
Definition gen.h:467
Cycle(std::initializer_list< T > list)
构造函数,使用初始化列表。
Definition gen.h:437
Cycle(Iterator begin, Iterator end)
构造函数,使用迭代器范围初始化。
Definition gen.h:446
Cycle(const Container &container)
构造函数,使用容器初始化。
Definition gen.h:454
void advance()
向前移动一步。
Definition gen.h:472
size_t index
Definition gen.h:430
std::vector< T > data
Definition gen.h:429
跳过前n个元素的生成器适配器。
Definition gen.h:677
void do_drop()
执行跳过操作。
Definition gen.h:685
Gen gen
Definition gen.h:678
bool done()
检查生成器是否已完成。
Definition gen.h:702
auto current() -> decltype(gen.current())
获取当前值。
Definition gen.h:711
bool droped
Definition gen.h:680
Drop(Gen g, size_t n)
构造函数。
Definition gen.h:696
size_t count
Definition gen.h:679
void advance()
向前移动一步。
Definition gen.h:719
跳过前若干个元素直到谓词不成立。
Definition gen.h:900
void advance()
向前移动一步。
Definition gen.h:933
void do_drop()
执行跳过操作。
Definition gen.h:908
bool droped
Definition gen.h:903
auto current() -> decltype(gen.current())
获取当前值。
Definition gen.h:928
bool done()
检查生成器是否已完成。
Definition gen.h:920
Gen gen
Definition gen.h:901
Pred pred
Definition gen.h:902
DropWhile(Gen g, Pred p)
Definition gen.h:914
枚举生成器,为每个元素附加索引。
Definition gen.h:732
bool done()
检查生成器是否已完成。
Definition gen.h:747
void advance()
向前移动一步。
Definition gen.h:760
Gen gen
Definition gen.h:733
size_t index
Definition gen.h:734
Enumerate(Gen g)
构造函数。
Definition gen.h:741
auto current() -> decltype(std::make_pair(index, gen.current()))
获取当前值。
Definition gen.h:753
过滤生成器,只保留满足谓词的元素。
Definition gen.h:569
bool done()
检查生成器是否已完成。
Definition gen.h:602
bool valid
Definition gen.h:572
bool initialized
Definition gen.h:573
Filter(Gen g, Pred p)
构造函数。
Definition gen.h:595
Pred pred
Definition gen.h:571
Gen gen
Definition gen.h:570
void advance()
向前移动一步。
Definition gen.h:625
void find_next()
查找下一个满足谓词的元素。
Definition gen.h:578
auto current() -> decltype(gen.current())
获取当前值。
Definition gen.h:614
生成器,通过反复调用函数生成无限序列。
Definition gen.h:772
Generate(Func f)
构造函数。
Definition gen.h:781
decltype(func()) curr
Definition gen.h:774
void advance()
向前移动一步。
Definition gen.h:798
decltype(curr) current()
获取当前值。
Definition gen.h:793
Func func
Definition gen.h:773
bool done()
检查生成器是否已完成。
Definition gen.h:787
用书数据的序列,从初始化列表构造。
Definition gen.h:292
List(Iterator begin, Iterator end)
构造函数,使用迭代器范围初始化。
Definition gen.h:310
std::vector< T > data
Definition gen.h:293
T current()
获取当前值。
Definition gen.h:329
List(const Container &container)
构造函数,使用容器初始化。
Definition gen.h:318
List(std::initializer_list< T > list)
构造函数,使用初始化列表初始化。
Definition gen.h:301
void advance()
向前移动一步。
Definition gen.h:334
bool done()
检查生成器是否已完成。
Definition gen.h:324
size_t idx
Definition gen.h:294
映射生成器,对源生成器的每个元素应用函数。
Definition gen.h:530
bool done()
检查生成器是否已完成。
Definition gen.h:548
ResultType current()
获取当前值。
Definition gen.h:554
void advance()
向前移动一步。
Definition gen.h:559
Map(Gen g, Func f)
构造函数。
Definition gen.h:542
typename std::decay< decltype(func(gen.current()))>::type ResultType
Definition gen.h:533
Func func
Definition gen.h:532
Gen gen
Definition gen.h:531
范围生成器,生成从start到end的等差数列。
Definition gen.h:342
Range(T begin, T end, T step=1)
构造函数。
Definition gen.h:353
T current()
获取当前值。
Definition gen.h:372
T curr
Definition gen.h:343
T end_
Definition gen.h:343
T step
Definition gen.h:344
void advance()
向前移动一步。
Definition gen.h:377
T start
Definition gen.h:343
bool done()
检查生成器是否已完成。
Definition gen.h:366
Range(T end)
构造函数。
Definition gen.h:360
重复生成器,重复生成同一个值指定次数。
Definition gen.h:385
Repeat(T val)
构造函数。
Definition gen.h:403
size_t count
Definition gen.h:387
T value
Definition gen.h:386
Repeat(T val, size_t n)
构造函数。
Definition gen.h:396
size_t index
Definition gen.h:388
T current()
获取当前值。
Definition gen.h:415
void advance()
向前移动一步。
Definition gen.h:420
bool done()
检查生成器是否已完成。
Definition gen.h:409
取前n个元素的生成器适配器。
Definition gen.h:637
size_t taken
Definition gen.h:640
Take(Gen g, size_t n)
构造函数。
Definition gen.h:648
void advance()
向前移动一步。
Definition gen.h:665
Gen gen
Definition gen.h:638
auto current() -> decltype(gen.current())
获取当前值。
Definition gen.h:660
size_t count
Definition gen.h:639
bool done()
检查生成器是否已完成。
Definition gen.h:654
取得前若干个元素直到谓词不成立。
Definition gen.h:852
TakeWhile(Gen g, Pred p)
构造函数。
Definition gen.h:870
bool done()
检查生成器是否已完成。
Definition gen.h:876
void try_advance()
Definition gen.h:857
auto current() -> decltype(gen.current())
获取当前值。
Definition gen.h:882
void advance()
向前移动一步。
Definition gen.h:887
Pred pred
Definition gen.h:854
Gen gen
Definition gen.h:853
bool stopped
Definition gen.h:855
迭代器范围生成器,生成从begin到end的值。
Definition gen.h:244
bool done()
检查生成器是否已完成。
Definition gen.h:271
void advance()
向前移动一步。
Definition gen.h:282
Views(Iter begin, Iter end)
构造函数,使用迭代器范围初始化。
Definition gen.h:256
Iter end_
Definition gen.h:246
Iter curr
Definition gen.h:245
typename std::iterator_traits< Iter >::value_type value_type
Definition gen.h:249
value_type current()
获取当前值。
Definition gen.h:277
Views(const Container &container)
构造函数,使用容器引用初始化。
Definition gen.h:264
压缩生成器,将两个生成器的元素配对输出。
Definition gen.h:809
Gen2 gen2
Definition gen.h:811
Zip(Gen1 g1, Gen2 g2)
构造函数。
Definition gen.h:819
void advance()
向前移动一步。
Definition gen.h:839
std::pair< typename Gen1::value_type, typename Gen2::value_type > current()
获取当前值。
Definition gen.h:832
bool done()
检查生成器是否已完成。
Definition gen.h:825
Gen1 gen1
Definition gen.h:810
容器收集适配器。
Definition gen.h:1308
friend auto operator|(Range r, collect< Container >) -> decltype(collect< Container >::template impl< Range, Container >(r, std::is_same< Container, void >{}))
管道操作符,将范围元素收集到容器中。
Definition gen.h:1344
static std::vector< typename std::decay< typename Range::value_type >::type > impl(Range r, std::true_type)
void版本的实现,将范围元素拷贝到std::vector。
Definition gen.h:1332
static C impl(Range r, std::false_type)
非void版本的实现,将范围元素拷贝到指定容器。
Definition gen.h:1318
跳过前n个元素适配器(用于管道操作符)。
Definition gen.h:1181
size_t count
Definition gen.h:1182
drop_t(size_t n)
Definition gen.h:1185
friend Drop< Gen > operator|(Gen g, drop_t s)
Definition gen.h:1188
跳过前若干个元素适配器(用于管道操作符)。
Definition gen.h:1279
drop_while_t(Pred p)
Definition gen.h:1283
Pred pred
Definition gen.h:1280
friend DropWhile< Gen, Pred > operator|(Gen g, drop_while_t dw)
Definition gen.h:1286
枚举生成器,为每个元素附加索引。
Definition gen.h:1205
friend Enumerate< Gen > operator|(Gen g, enumerate_t)
Definition gen.h:1210
Enumerate< Gen > operator()(Gen g)
Definition gen.h:1215
过滤适配器(用于管道操作符)。
Definition gen.h:1131
filter_t(Pred p)
Definition gen.h:1135
Pred pred
Definition gen.h:1132
friend Filter< Gen, Pred > operator|(Gen g, filter_t f)
Definition gen.h:1138
映射适配器(用于管道操作符)。
Definition gen.h:1103
map_t(Func f)
Definition gen.h:1107
friend Map< Gen, Func > operator|(Gen g, map_t m)
Definition gen.h:1110
Func func
Definition gen.h:1104
取前n个元素适配器(用于管道操作符)。
Definition gen.h:1157
friend Take< Gen > operator|(Gen g, take_t t)
Definition gen.h:1164
size_t count
Definition gen.h:1158
take_t(size_t n)
Definition gen.h:1161
取前若干个元素适配器(用于管道操作符)。
Definition gen.h:1253
Pred pred
Definition gen.h:1254
take_while_t(Pred p)
Definition gen.h:1257
friend TakeWhile< Gen, Pred > operator|(Gen g, take_while_t tw)
Definition gen.h:1260
创建目标迭代器适配器。
Definition gen.h:1357
friend void operator|(Range r, to_t m)
Definition gen.h:1364
to_t(Iterator i)
Definition gen.h:1361
Iterator it
Definition gen.h:1358
定义 console 库使用的自定义异常类层次结构。
std::enable_if< is_string< typenamestd::decay< T >::type >::value >::type repr(T &&value, std::basic_ostream< CharT, Traits > &os=std::cout)
输出字符串类型(std::string, const char* 等)的表示,带双引号。
Definition repr.h:97
Range< T > range(T begin, T end, T step=1)
创建范围生成器。
Definition gen.h:1006
auto operator&(Gen1 &&g1, Gen2 &&g2) -> decltype(gen::zip(std::forward< Gen1 >(g1), std::forward< Gen2 >(g2)))
按位与操作符重载,用于压缩两个生成器。
Definition gen.h:1389
map_t< Func > map(Func f)
创建映射适配器。
Definition gen.h:1122
drop_while_t< Pred > drop_while(Pred pred)
创建跳过前若干个元素适配器。
Definition gen.h:1297
Zip< typename std::decay< Gen1 >::type, typename std::decay< Gen2 >::type > zip(Gen1 &&g1, Gen2 &&g2)
压缩两个生成器。
Definition gen.h:1243
drop_t drop(size_t n)
创建跳过前n个元素适配器。
Definition gen.h:1198
take_while_t< Pred > take_while(Pred pred)
创建取前若干个元素适配器。
Definition gen.h:1271
Views< Iter > views(Iter begin, Iter end)
从迭代器范围创建视图生成器。
Definition gen.h:944
to_t< Iterator > to(Iterator it)
创建目标迭代器适配器。
Definition gen.h:1376
take_t take(size_t n)
创建取前n个元素适配器。
Definition gen.h:1174
List< T > list(std::initializer_list< T > list)
从初始化列表创建列表生成器。
Definition gen.h:966
Generate< Func > generate(Func func)
创建生成器适配器。
Definition gen.h:1229
Counter< T > counter(T start=T{0}, T step=T{1}, size_t times=size_t(-1))
创建计数器生成器。
Definition gen.h:1094
Cycle< T > cycle(std::initializer_list< T > list)
创建循环生成器。
Definition gen.h:1051
filter_t< Pred > filter(Pred pred)
创建过滤适配器。
Definition gen.h:1150
static constexpr enumerate_t enumerate
Definition gen.h:1220
Repeat< T > repeat(T val, size_t n)
创建重复生成器。
Definition gen.h:1029
Compose< F, G > compose(F f, G g)
将两个函数组合为一个函数。
Definition gen.h:2235
static constexpr sqrt_t sqrt
Definition gen.h:1593
static constexpr odd_t odd
Definition gen.h:1792
Not< P > not_(P p)
创建逻辑非组合谓词。
Definition gen.h:2165
static constexpr square_t square
Definition gen.h:1559
static constexpr reciprocal_t reciprocal
Definition gen.h:1610
Or< P, Q > operator||(P p, Q q)
逻辑或运算符,等价于 or_(p, q)。
Definition gen.h:2191
Compose< F, G > operator>>(F f, G g)
函数组合运算符,将两个函数组合为一个函数。
Definition gen.h:2262
Not< P > operator!(P p)
逻辑非运算符,等价于 not_(p)。
Definition gen.h:2200
static constexpr second_t second
Definition gen.h:1988
Mod< T > mod(T v)
创建取模固定值变换器。
Definition gen.h:2093
And< P, Q > and_(P p, Q q)
创建逻辑与组合谓词。
Definition gen.h:2149
static constexpr negate_t negate
Definition gen.h:1542
static constexpr prime_t prime
Definition gen.h:1863
static constexpr negative_t negative
Definition gen.h:1826
Gt< T > gt(T t)
创建大于谓词。
Definition gen.h:2101
static constexpr inc_t inc
Definition gen.h:1507
Mul< T > mul(T v)
创建乘固定值变换器。
Definition gen.h:2075
Le< T > le(T t)
创建小于等于谓词。
Definition gen.h:2125
static constexpr cube_t cube
Definition gen.h:1576
Member< Class, Mem > member(Mem Class::*p)
创建成员变量访问器。
Definition gen.h:2173
Ne< T > ne(T v)
创建不等于谓词。
Definition gen.h:2141
static constexpr first_t first
Definition gen.h:1971
Add< T > add(T v)
创建加固定值变换器。
Definition gen.h:2057
static constexpr abs_t abs
Definition gen.h:1627
Lt< T > lt(T t)
创建小于谓词。
Definition gen.h:2117
static constexpr identity_t identity
Definition gen.h:2031
static constexpr dec_t dec
Definition gen.h:1525
Div< T > div(T v)
创建除固定值变换器。
Definition gen.h:2084
static constexpr positive_t positive
Definition gen.h:1809
static constexpr to_string_t to_string
Definition gen.h:1644
static constexpr even_t even
Definition gen.h:1775
static constexpr zero_t zero
Definition gen.h:1843
Eq< T > eq(T v)
创建等于谓词。
Definition gen.h:2133
And< P, Q > operator&&(P p, Q q)
逻辑与运算符,等价于 and_(p, q)。
Definition gen.h:2182
Sub< T > sub(T v)
创建减固定值变换器。
Definition gen.h:2066
Ge< T > ge(T t)
创建大于等于谓词。
Definition gen.h:2109
Or< P, Q > or_(P p, Q q)
创建逻辑或组合谓词。
Definition gen.h:2157
Generator< Derived, T >::iterator iter(Generator< Derived, T > &g)
获取生成器迭代器的辅助函数。
Definition gen.h:180
std::basic_ostream< CharT, Traits > & print_generator(std::basic_ostream< CharT, Traits > &os, const Generator< Derived, T > &gen)
将 Generator 的内容输出到流,格式为 [elem1, elem2, ...]。
Definition gen.h:209
MultiArray< decltype(std::declval< T >()<< std::declval< U >()), Dims... > operator<<(const MultiArray< T, Dims... > &a, const MultiArray< U, Dims... > &b)
Definition multiarray.h:1607
T next(typename Generator< Derived, T >::iterator &it)
从迭代器获取下一个值的辅助函数。
Definition gen.h:190
提供类似 Python 的 repr() 函数,用于生成对象的可读字符串表示。
加固定值变换器。
Definition gen.h:1401
auto operator()(U x) const -> decltype(x+value)
对输入值加上固定值。
Definition gen.h:1410
T value
Definition gen.h:1402
逻辑与组合器。
Definition gen.h:1871
bool operator()(const T &x) const
对输入值同时应用两个谓词并返回逻辑与结果。
Definition gen.h:1881
函数组合器,将两个函数组合为一个函数。
Definition gen.h:2210
auto operator()(T x) const -> decltype(g(f(x)))
对输入值应用两个函数的组合。
Definition gen.h:2221
除固定值变换器。
Definition gen.h:1458
auto operator()(U x) const -> decltype(x/value)
对输入值除以固定值。
Definition gen.h:1467
T value
Definition gen.h:1459
等于谓词。
Definition gen.h:1727
T value
Definition gen.h:1728
bool operator()(const U &x) const
判断输入值是否等于指定值。
Definition gen.h:1736
大于等于谓词。
Definition gen.h:1670
bool operator()(const U &x) const
判断输入值是否大于等于阈值。
Definition gen.h:1679
T threshold
Definition gen.h:1671
大于谓词。
Definition gen.h:1651
bool operator()(const U &x) const
判断输入值是否大于阈值。
Definition gen.h:1660
T threshold
Definition gen.h:1652
小于等于谓词。
Definition gen.h:1708
T threshold
Definition gen.h:1709
bool operator()(const U &x) const
判断输入值是否小于等于阈值。
Definition gen.h:1717
小于谓词。
Definition gen.h:1689
bool operator()(const U &x) const
判断输入值是否小于阈值。
Definition gen.h:1698
T threshold
Definition gen.h:1690
取成员变量变换器。
Definition gen.h:1932
Mem Class::* ptr
成员指针
Definition gen.h:1933
Mem operator()(T *obj) const
获取对象的成员变量。
Definition gen.h:1951
Mem operator()(T &&obj) const
获取对象的成员变量。
Definition gen.h:1941
取模固定值变换器。
Definition gen.h:1477
T value
Definition gen.h:1478
auto operator()(U x) const -> decltype(x % value)
对输入值取模固定值。
Definition gen.h:1486
乘固定值变换器。
Definition gen.h:1439
auto operator()(U x) const -> decltype(x *value)
对输入值乘以固定值。
Definition gen.h:1448
T value
Definition gen.h:1440
不等于谓词。
Definition gen.h:1746
bool operator()(const U &x) const
判断输入值是否不等于指定值。
Definition gen.h:1755
T value
Definition gen.h:1747
逻辑非组合器。
Definition gen.h:1912
bool operator()(const T &x) const
对输入值应用谓词并返回逻辑非结果。
Definition gen.h:1921
逻辑或组合器。
Definition gen.h:1892
bool operator()(const T &x) const
对输入值同时应用两个谓词并返回逻辑或结果。
Definition gen.h:1902
减固定值变换器。
Definition gen.h:1420
auto operator()(U x) const -> decltype(x - value)
对输入值减去固定值。
Definition gen.h:1429
T value
Definition gen.h:1421
绝对值变换器。
Definition gen.h:1615
auto operator()(T x) const -> decltype(std::abs(x))
计算输入值的绝对值。
Definition gen.h:1622
转型变化器。
Definition gen.h:2038
T operator()(U &&x)
返回转型后的值。
Definition gen.h:2046
立方变换器。
Definition gen.h:1564
auto operator()(T x) const -> decltype(x *x *x)
计算输入值的立方。
Definition gen.h:1571
自减变换器。
Definition gen.h:1512
auto operator()(T x) const -> typename std::decay< decltype(--x)>::type
对输入值自减1。
Definition gen.h:1520
偶数谓词。
Definition gen.h:1763
bool operator()(T x) const
判断输入值是否为偶数。
Definition gen.h:1770
取 pair 的 first 变换器。
Definition gen.h:1959
Pair::first_type operator()(const Pair &p) const
获取 pair 的第一个元素。
Definition gen.h:1966
恒等变换器。
Definition gen.h:2019
T operator()(T x) const
返回输入值本身。
Definition gen.h:2026
自增变换器。
Definition gen.h:1494
auto operator()(T x) const -> typename std::decay< decltype(++x)>::type
对输入值自增1。
Definition gen.h:1502
取负变换器。
Definition gen.h:1530
auto operator()(T x) const -> decltype(-x)
对输入值取负。
Definition gen.h:1537
负数谓词。
Definition gen.h:1814
bool operator()(T x) const
判断输入值是否为负数。
Definition gen.h:1821
奇数谓词。
Definition gen.h:1780
bool operator()(T x) const
判断输入值是否为奇数。
Definition gen.h:1787
正数谓词。
Definition gen.h:1797
bool operator()(T x) const
判断输入值是否为正数。
Definition gen.h:1804
素数谓词。
Definition gen.h:1848
bool operator()(Int n) const
判断输入值是否为素数。
Definition gen.h:1855
倒数变换器。
Definition gen.h:1598
auto operator()(T x) const -> decltype(1/x)
计算输入值的倒数。
Definition gen.h:1605
取 pair 的 second 变换器。
Definition gen.h:1976
Pair::second_type operator()(const Pair &p) const
获取 pair 的第二个元素。
Definition gen.h:1983
平方根变换器。
Definition gen.h:1581
auto operator()(T x) const -> decltype(std::sqrt(x))
计算输入值的平方根。
Definition gen.h:1588
平方变换器。
Definition gen.h:1547
auto operator()(T x) const -> decltype(x *x)
计算输入值的平方。
Definition gen.h:1554
转为字符串变换器。
Definition gen.h:1632
std::string operator()(const T &x) const
将输入值转换为字符串。
Definition gen.h:1639
相邻去重过滤器。
Definition gen.h:1995
bool first
Definition gen.h:1996
T last
Definition gen.h:1997
bool operator()(const T &x)
判断当前元素是否与前一个元素不同。
Definition gen.h:2004
零谓词。
Definition gen.h:1831
bool operator()(T x) const
判断输入值是否为零。
Definition gen.h:1838