Daniel Kolesa
6ba3b93018
cleaner pipe operator definition for ranges
2017-02-13 20:43:23 +01:00
Daniel Kolesa
9ab2093ed4
clean up join range pop/front
2017-02-10 21:06:08 +01:00
Daniel Kolesa
2e773b3849
clean up join/zip ranges with c++17 fold expressions
2017-02-10 20:26:13 +01:00
Daniel Kolesa
e1f5cc477f
extend IteratorRange to handle pointers as special case
2017-02-09 23:38:11 +01:00
Daniel Kolesa
052fa58be4
clean up pointer range constructor
2017-02-09 22:55:17 +01:00
Daniel Kolesa
c5dd6bb8c3
remove obsolete type traits
2017-02-09 20:56:15 +01:00
Daniel Kolesa
ea6d3d4bbf
clean up IteratorRange, use unsigned variant of difference for size
2017-02-09 20:13:52 +01:00
Daniel Kolesa
463c7275d5
use ranged_traits specialization for static arrays
2017-02-09 20:07:10 +01:00
Daniel Kolesa
077835e4b6
range system fixes, add iterator types to RangeHalf, optimize make_vector(R)
2017-02-01 18:29:42 +01:00
Daniel Kolesa
6ec72a6ecd
add IteratorRange to make a range out of any two iterators
2017-01-30 22:07:12 +01:00
Daniel Kolesa
2884f4b47b
use size_t and ptrdiff_t
2017-01-30 19:11:49 +01:00
Daniel Kolesa
343c684820
initial proper string integration
2017-01-30 01:16:29 +01:00
Daniel Kolesa
2c7f98f57e
use standard swap
2017-01-29 15:56:02 +01:00
Daniel Kolesa
a8f7122d45
use standard declval
2017-01-29 15:29:11 +01:00
Daniel Kolesa
2e7bba2c95
remove Pair, more standard tuple usage etc
2017-01-28 18:52:34 +01:00
Daniel Kolesa
7e96183648
start moving over to standard tuple
2017-01-28 18:30:31 +01:00
Daniel Kolesa
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
Daniel Kolesa
56a3327dce
use standard vector and move/forward
2017-01-25 01:57:24 +01:00
Daniel Kolesa
41ad273c32
std allowed by default
2017-01-14 15:09:27 +01:00
Daniel Kolesa
1eb3db64f0
use implicit ctor
2016-11-16 19:09:19 +01:00
Daniel Kolesa
8afffc1fb7
refactoring, style updates, various fixes
2016-07-31 20:40:25 +01:00
Daniel Kolesa
47ed1a700c
don't use classic style casts
2016-07-02 04:57:23 +01:00
Daniel Kolesa
7912c24e3a
const syntax refactoring
2016-06-23 19:18:35 +01:00
Daniel Kolesa
75e27a14b0
overload rvalue refs to const for tuple
2016-05-02 18:21:54 +01:00
Daniel Kolesa
34cb1f1fbd
forward the tuple to ensure correct get semantics
2016-05-01 00:53:48 +01:00
Daniel Kolesa
f46ffa53fd
forwarding join/zip
2016-05-01 00:34:00 +01:00
Daniel Kolesa
b16e72fa16
convert nearly all algos (except variadic ones) to use perfect forwarding
2016-04-30 19:21:50 +01:00
Daniel Kolesa
0f5ed68124
actually need to move things into the lambda or they die
2016-04-30 18:24:17 +01:00
Daniel Kolesa
ab22ba910a
remove mutable where unnecessary + capture join/zip by ref instead of copy
2016-04-27 18:42:51 +01:00
Daniel Kolesa
288526e7db
capture by references more (the objects live long enough to be safe)
2016-04-27 00:29:55 +01:00
Daniel Kolesa
e7dd08d884
piping for nearly all algorithms
2016-04-26 22:25:46 +01:00
Daniel Kolesa
5604df9625
make core range funcs methods on InputRange + initial support for piping
2016-04-26 22:05:07 +01:00
Daniel Kolesa
2d399a2ed3
fix RangeValue for ZipRange
2016-03-30 20:41:59 +01:00
Daniel Kolesa
6c840ad830
implement zip and tuple ToString
2016-03-27 23:49:57 +01:00
Daniel Kolesa
f651940570
add initial implementation of range joiner (join any type-compatible ranges into one)
2016-03-27 21:06:00 +01:00
Daniel Kolesa
a31ddba522
range fixes
2016-03-23 22:27:46 +00:00
Daniel Kolesa
9de9d99d4d
fixes
2016-03-22 01:13:43 +00:00
Daniel Kolesa
5b4ea576b7
change to RemoveConst
2016-03-21 21:25:23 +00:00
Daniel Kolesa
b66c684add
add trailing newlines
2016-02-07 21:19:20 +00:00
Daniel Kolesa
bf647c100e
re-add iter for arrays of const
2016-01-23 17:38:41 +00:00
Daniel Kolesa
305d3e54f6
cleanups
2016-01-21 17:58:51 +00:00
Daniel Kolesa
f578bd71f6
simplify range traits tests
2016-01-14 19:15:50 +00:00
Daniel Kolesa
8152173c39
convert more traits
2016-01-14 19:11:52 +00:00
Daniel Kolesa
41174195bb
drop static in constexpr template vars
2016-01-13 20:40:59 +00:00
Daniel Kolesa
818cbe376a
convert the remaining type_traits.hh checking traits to constexpr bools
2016-01-13 18:09:21 +00:00
Daniel Kolesa
a6744105dc
convert range checks to template vars
2016-01-13 17:42:37 +00:00
Daniel Kolesa
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
Daniel Kolesa
31d3182a4a
fix shadow warnings
2015-12-30 15:13:07 +01:00
Daniel Kolesa
d9120a0015
new predefined operations for input ranges (defined for all without need for custom impl)
2015-08-31 14:47:19 +01:00
Daniel Kolesa
0be81997af
new iter utils for pointer ranges
2015-08-07 02:36:58 +01:00
Daniel Kolesa
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
Daniel Kolesa
0ceada8629
allow default ctor on PointerRange
2015-07-29 01:37:22 +01:00
Daniel Kolesa
df4b169aa8
better range constraints
2015-07-28 02:40:24 +01:00
Daniel Kolesa
287bdbd312
contiguous ranges provide the data() method to retrieve a pointer to the sequence
2015-07-23 01:32:22 +01:00
Daniel Kolesa
7fc4ce0a3a
new range category: ContiguousRange (guaranteed to be backed by contiguous memory)
2015-07-23 01:28:25 +01:00
Daniel Kolesa
1c4f04757d
mv the octa directory too
2015-07-13 20:10:29 +01:00