q66
6ec72a6ecd
add IteratorRange to make a range out of any two iterators
2017-01-30 22:07:12 +01:00
q66
2884f4b47b
use size_t and ptrdiff_t
2017-01-30 19:11:49 +01:00
q66
343c684820
initial proper string integration
2017-01-30 01:16:29 +01:00
q66
2c7f98f57e
use standard swap
2017-01-29 15:56:02 +01:00
q66
a8f7122d45
use standard declval
2017-01-29 15:29:11 +01:00
q66
2e7bba2c95
remove Pair, more standard tuple usage etc
2017-01-28 18:52:34 +01:00
q66
7e96183648
start moving over to standard tuple
2017-01-28 18:30:31 +01:00
q66
19226d51af
since we can't ADL for std container iter, use different system
...
This introduces ranged_traits structure, which by default works
for things defining .iter(), but also allows you to override it
per type at later stage, which comes in handy for std containers.
This is because we can't extend the std namespace in any way and
we still need to be able to add iterable functionality to std
containers even at later stage than iter() is defined.
2017-01-26 00:27:54 +01:00
q66
56a3327dce
use standard vector and move/forward
2017-01-25 01:57:24 +01:00
q66
41ad273c32
std allowed by default
2017-01-14 15:09:27 +01:00
q66
1eb3db64f0
use implicit ctor
2016-11-16 19:09:19 +01:00
q66
8afffc1fb7
refactoring, style updates, various fixes
2016-07-31 20:40:25 +01:00
q66
47ed1a700c
don't use classic style casts
2016-07-02 04:57:23 +01:00
q66
7912c24e3a
const syntax refactoring
2016-06-23 19:18:35 +01:00
q66
75e27a14b0
overload rvalue refs to const for tuple
2016-05-02 18:21:54 +01:00
q66
34cb1f1fbd
forward the tuple to ensure correct get semantics
2016-05-01 00:53:48 +01:00
q66
f46ffa53fd
forwarding join/zip
2016-05-01 00:34:00 +01:00
q66
b16e72fa16
convert nearly all algos (except variadic ones) to use perfect forwarding
2016-04-30 19:21:50 +01:00
q66
0f5ed68124
actually need to move things into the lambda or they die
2016-04-30 18:24:17 +01:00
q66
ab22ba910a
remove mutable where unnecessary + capture join/zip by ref instead of copy
2016-04-27 18:42:51 +01:00
q66
288526e7db
capture by references more (the objects live long enough to be safe)
2016-04-27 00:29:55 +01:00
q66
e7dd08d884
piping for nearly all algorithms
2016-04-26 22:25:46 +01:00
q66
5604df9625
make core range funcs methods on InputRange + initial support for piping
2016-04-26 22:05:07 +01:00
q66
2d399a2ed3
fix RangeValue for ZipRange
2016-03-30 20:41:59 +01:00
q66
6c840ad830
implement zip and tuple ToString
2016-03-27 23:49:57 +01:00
q66
f651940570
add initial implementation of range joiner (join any type-compatible ranges into one)
2016-03-27 21:06:00 +01:00
q66
a31ddba522
range fixes
2016-03-23 22:27:46 +00:00
q66
9de9d99d4d
fixes
2016-03-22 01:13:43 +00:00
q66
5b4ea576b7
change to RemoveConst
2016-03-21 21:25:23 +00:00
q66
b66c684add
add trailing newlines
2016-02-07 21:19:20 +00:00
q66
bf647c100e
re-add iter for arrays of const
2016-01-23 17:38:41 +00:00
q66
305d3e54f6
cleanups
2016-01-21 17:58:51 +00:00
q66
f578bd71f6
simplify range traits tests
2016-01-14 19:15:50 +00:00
q66
8152173c39
convert more traits
2016-01-14 19:11:52 +00:00
q66
41174195bb
drop static in constexpr template vars
2016-01-13 20:40:59 +00:00
q66
818cbe376a
convert the remaining type_traits.hh checking traits to constexpr bools
2016-01-13 18:09:21 +00:00
q66
a6744105dc
convert range checks to template vars
2016-01-13 17:42:37 +00:00
q66
d53556d336
convert a part of type traits to template variables (reduces verbosity in a lot of places)
2016-01-12 21:45:26 +00:00
q66
31d3182a4a
fix shadow warnings
2015-12-30 15:13:07 +01:00
q66
d9120a0015
new predefined operations for input ranges (defined for all without need for custom impl)
2015-08-31 14:47:19 +01:00
q66
0be81997af
new iter utils for pointer ranges
2015-08-07 02:36:58 +01:00
q66
50a8562d20
ensure correct ctor overload resolution on char/pointer range for two pointers vs pointer plus size when passed int (or similar)
2015-08-05 02:09:44 +01:00
q66
0ceada8629
allow default ctor on PointerRange
2015-07-29 01:37:22 +01:00
q66
df4b169aa8
better range constraints
2015-07-28 02:40:24 +01:00
q66
287bdbd312
contiguous ranges provide the data() method to retrieve a pointer to the sequence
2015-07-23 01:32:22 +01:00
q66
7fc4ce0a3a
new range category: ContiguousRange (guaranteed to be backed by contiguous memory)
2015-07-23 01:28:25 +01:00
q66
1c4f04757d
mv the octa directory too
2015-07-13 20:10:29 +01:00