q66
f2a78ad589
guaranteed single-argument slice
2017-04-01 16:49:38 +02:00
q66
fe4d7a553a
remove pop_front_n/pop_back_n from direct definition
2017-04-01 01:07:30 +02:00
q66
d99768de96
remove equals_ stuff
2017-03-31 03:39:28 +02:00
q66
dc7c124069
remove distance_ stuff
2017-03-31 03:36:40 +02:00
q66
8f70b60484
remove range push_ stuff
2017-03-31 03:34:35 +02:00
q66
6ddb0f1b17
remove the range half stuff for now
2017-03-31 03:28:18 +02:00
q66
32110bcb9f
simplify range-for-only iterators using relaxed c++17 rules
2017-03-28 23:58:44 +02:00
q66
64e699a2d2
implement more compares to make range halves conformant random/bidirectional iterators
2017-03-11 14:24:41 +01:00
q66
9c9221822a
directly iterable generators
2017-03-11 14:16:47 +01:00
q66
c93e818247
rvalue reference matching ostd::iter
2017-03-02 19:50:01 +01:00
q66
22a5640a59
revamped stream errors, add get_line on streams and stream line range
2017-03-02 18:12:00 +01:00
q66
a23a42da1f
remove ostd::to_string and ostd::concat (both replaced by more flexible format)
2017-02-20 20:43:38 +01:00
q66
78e6771148
bounds checking pointer/string ranges
2017-02-19 18:31:08 +01:00
q66
d6219046be
add range_put_all which can be overloaded with special optimizations
2017-02-19 18:14:09 +01:00
q66
e4dc237f4d
revamped output ranges and input range pop funcs
2017-02-19 16:45:06 +01:00
q66
2661ba91ae
add back appender helper funcs, add noop_output_range and counting_output_range
2017-02-18 19:05:03 +01:00
q66
468ddd02e2
remove appender func (unnecessary)
2017-02-18 17:25:49 +01:00
q66
d155f90ceb
range fixes
2017-02-18 16:21:03 +01:00
q66
2ce3e6496a
clean up range tests
2017-02-18 15:23:57 +01:00
q66
755429f901
ravamped range traits
2017-02-18 15:05:42 +01:00
q66
f039fc7ed9
clean up some sfinae and proxy abuse
2017-02-18 14:31:50 +01:00
q66
8e40841219
update to new style everywhere
2017-02-16 20:49:34 +01:00
q66
68c19a80fb
update naming style across range module
2017-02-16 20:02:55 +01:00
q66
296345f18e
remove leftover template arg
2017-02-15 19:38:27 +01:00
q66
8190a0db5c
remove bad iter() overload
2017-02-15 19:35:28 +01:00
q66
c88660a854
standard way to retrieve range type from ranged_traits + minor fixes
2017-02-15 19:18:57 +01:00
q66
bd307bd52e
standard iter() for any std container type without ranged_traits
2017-02-14 18:32:51 +01:00
q66
67cbcb71eb
move initializer_list iter/citer to range.hh
2017-02-14 17:44:24 +01:00
q66
6b3707c0dc
remove PointerRange, IteratorRange completely replaces it
2017-02-14 17:39:03 +01:00
q66
08e980cd0a
start cleaning up the range system for nicer syntax
2017-02-13 23:33:52 +01:00
q66
21da5ec3d1
make the pipe op a member to make it to work automagically on user ranges
2017-02-13 21:13:10 +01:00
q66
6ba3b93018
cleaner pipe operator definition for ranges
2017-02-13 20:43:23 +01:00
q66
9ab2093ed4
clean up join range pop/front
2017-02-10 21:06:08 +01:00
q66
2e773b3849
clean up join/zip ranges with c++17 fold expressions
2017-02-10 20:26:13 +01:00
q66
e1f5cc477f
extend IteratorRange to handle pointers as special case
2017-02-09 23:38:11 +01:00
q66
052fa58be4
clean up pointer range constructor
2017-02-09 22:55:17 +01:00
q66
c5dd6bb8c3
remove obsolete type traits
2017-02-09 20:56:15 +01:00
q66
ea6d3d4bbf
clean up IteratorRange, use unsigned variant of difference for size
2017-02-09 20:13:52 +01:00
q66
463c7275d5
use ranged_traits specialization for static arrays
2017-02-09 20:07:10 +01:00
q66
077835e4b6
range system fixes, add iterator types to RangeHalf, optimize make_vector(R)
2017-02-01 18:29:42 +01:00
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