Commit graph

44 commits

Author SHA1 Message Date
q66 329aefdecd IsOutputRange will now test for presence of the right 'put' method, enabling IsOutputRange tests on hybrid ranges (i.e. input ranges that satisfy output requirements) 2015-05-23 22:24:12 +01:00
q66 7589a93539 add some traits to check range for range types including proper type inheritance 2015-05-23 20:33:08 +01:00
q66 8908ac0506 new range category: FiniteRandomAccessRange 2015-05-23 20:00:03 +01:00
q66 b90fce8d84 Revert "add range difference type"
This reverts commit 4adbeb4e1b.
2015-05-23 17:56:08 +01:00
q66 4adbeb4e1b add range difference type 2015-05-23 17:40:36 +01:00
q66 9c3486903d add optional pop_first_n and pop_last_n methods on ranges 2015-05-23 17:36:26 +01:00
q66 64810e4006 remove the noexcept stuff; nothing in octastd ever throws 2015-05-20 22:05:41 +01:00
q66 6a8dec424a range fixes 2015-05-08 02:03:48 +01:00
q66 ff9c78c1d4 fix 2015-05-07 21:07:06 +01:00
q66 98e7566ad9 coding style 2015-05-03 23:44:48 +01:00
q66 2d10cd9280 ditch RangeTraits for alias definitions 2015-05-03 21:54:26 +01:00
q66 b1192b248c noexcept formatting 2015-04-29 01:38:16 +01:00
q66 1a2d606ae7 noexcept the library 2015-04-28 18:48:58 +01:00
q66 de7ceba269 minor renames 2015-04-27 19:56:06 +01:00
q66 e98b8946ae define size_type for ranges 2015-04-27 19:53:48 +01:00
q66 d7778cf259 ditch the separate "type" struct 2015-04-27 19:38:34 +01:00
q66 f106c5ae24 get rid of namespace internal 2015-04-24 18:16:35 +01:00
q66 ff5fc7368d add EnumeratedRange + octa::enumerate 2015-04-21 17:58:36 +01:00
q66 6807d22df5 satisfy OutputRange on MoveRange and PointerRange (might be mutable), add more algorithms 2015-04-21 17:56:36 +01:00
q66 ed0b28f2e0 add PointerRange constructor for pointer + length 2015-04-19 20:53:02 +01:00
q66 58063fe392 add min, max, min_element, max_element in algorithm.h; rename VectorRange to PointerRange and move to range.h (useful as generic, e.g. with InitializerList) 2015-04-19 00:04:17 +01:00
q66 dc2dacaf5d add slicing for finite random access ranges 2015-04-18 22:05:24 +01:00
q66 35424dd248 assignment op overloads for reverserange/moverange (c++ deletes them because of move ctor) 2015-04-18 20:31:07 +01:00
q66 296b7cdeb9 move move/forward to utility.h 2015-04-18 00:11:16 +01:00
q66 32d925d298 define support for OutputRange 2015-04-17 21:33:01 +01:00
q66 c9b7afc035 add NumberRange specialization for 1 argument (creates a "[0, v)" range) 2015-04-17 20:33:36 +01:00
q66 1557c227d0 remove range traits pointer specializations, as a pointer is not a range... also remove the pointer member type 2015-04-17 20:29:38 +01:00
q66 0116d3cf4c equality checking for NumberRange 2015-04-17 20:20:38 +01:00
q66 37aa387734 use inheritance to guarantee iterable behavior (also shortens code) 2015-04-17 20:15:03 +01:00
q66 83abf1d44b make RangeIterator more internal; strip down its unnecessary functionality; remove the iterator macro for standard containers; fixes 2015-04-17 18:33:41 +01:00
q66 e73a8344ab RangeIterator doesn't need a type {} structure 2015-04-17 02:19:40 +01:00
q66 21ba9d025d add NumberRange 2015-04-17 00:55:50 +01:00
q66 bc35dad776 fix RangeIterator to use empty() 2015-04-17 00:15:20 +01:00
q66 36d53f2019 make_move_range/make_reverse_range 2015-04-16 23:47:31 +01:00
q66 603cb42eca fix insert + add move_range 2015-04-16 23:26:10 +01:00
q66 cb8e189450 range-based vector insert + add MoveRange that wraps any InputRange with move semantics 2015-04-16 23:06:39 +01:00
q66 66f7bc90c2 range category tags + cleanup 2015-04-16 21:50:53 +01:00
q66 e1b9e208ae better constness on ranges 2015-04-16 20:35:10 +01:00
q66 0ac0ec24be const stuff 2015-04-16 02:40:49 +01:00
q66 aca6a7810b correct [] operator on reverse ranges 2015-04-16 02:13:53 +01:00
q66 1f7c5e97b3 reverse range 2015-04-16 02:07:32 +01:00
q66 988b092778 actually working comparisons 2015-04-16 01:47:02 +01:00
q66 cb68ada121 simplify ranges a bit 2015-04-16 01:18:18 +01:00
q66 c79e5757f9 initial proof-of-concept implementation of ranges and range iterator 2015-04-16 00:18:00 +01:00