Commit Graph

89 Commits (62676f42228f9b0a0fc6a637ecc05a8e068b1982)

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