Commit graph

69 commits

Author SHA1 Message Date
q66 84d78ba87a deuglify template args 2015-06-04 22:57:06 +01:00
q66 9b0a6e630b deuglify vector.h 2015-06-04 00:06:43 +01:00
q66 6c20f00494 space-optimize vector (don't take up any additional space with empty allocator) 2015-06-03 22:31:02 +01:00
q66 216fdb5392 initial vector and string allocator support (currently space-inefficient) 2015-06-03 22:04:48 +01:00
q66 ff90009450 get rid of stupid Type suffixes (we already know it's a type from the name) 2015-06-03 20:00:41 +01:00
q66 bfc94e31d7 uglify the code by using unique identifiers only (prevent macro conflicts) 2015-06-02 00:57:34 +01:00
q66 67600c4637 first -> front, last -> back 2015-06-01 01:13:37 +01:00
q66 77f7fed0df more tests + cleaner test runner 2015-05-31 15:50:09 +01:00
q66 3c6ef6e593 initial support for "range halves" ("range iterator") 2015-05-29 23:32:25 +01:00
q66 08bb790612 stl-like initializer list interface (allow octastd to be used with stl outside of octaforge) 2015-05-27 23:46:58 +01:00
q66 1371a32db7 use size() instead of length() 2015-05-27 23:19:16 +01:00
q66 434816840b octa::concat 2015-05-27 22:09:22 +01:00
q66 e9367246b5 completely genericized octa::swap (no need for global overloads ever) 2015-05-26 21:29:44 +01:00
q66 42167fdc5a fix vector::swap 2015-05-26 21:16:59 +01:00
q66 f0380a2aaf initializer list fixes 2015-05-25 19:08:53 +01:00
q66 8718630a5a il.range() -> il.each(), add algorithm::filter(range, pred) 2015-05-24 02:31:54 +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 3883a0da33 octa::Vector - new constructor and operator= for construction from range (+ random access specialization for efficiency) 2015-05-23 19:52:42 +01:00
q66 56d8e481c8 .get() -> .data() 2015-05-21 00:45:34 +01:00
q66 64810e4006 remove the noexcept stuff; nothing in octastd ever throws 2015-05-20 22:05:41 +01:00
q66 559a1afd26 noexcept fix 2015-05-19 01:23:41 +01:00
q66 704066954a remove vector::pop_ret 2015-05-19 01:21:23 +01:00
q66 7e61799f8b vector: do not free buffer in copy assignment unless necessary 2015-05-17 17:28:11 +01:00
q66 ed24618061 vector: clear does not free buffer + add operator= for initializer list 2015-05-17 17:11:56 +01:00
q66 98e7566ad9 coding style 2015-05-03 23:44:48 +01:00
q66 8fe03741cc fix vector noexcept on gcc 4.8 2015-05-01 20:21:47 +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 56f19204a2 style update 2015-04-27 20:23:38 +01:00
q66 d7778cf259 ditch the separate "type" struct 2015-04-27 19:38:34 +01:00
q66 0245db3fec rename traits->type_traits 2015-04-25 16:13:21 +01:00
q66 6de48f1f21 refactor traits: e.g. "RemoveCV<T>" instead of "typename RemoveCV<T>::type" 2015-04-24 20:03:16 +01:00
q66 cca0a62d34 use IsPOD rather than !IsClass to decide whether to memcpy etc. 2015-04-23 23:31:52 +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 d68d381f72 move initializer lists into initializer_list.h + add new .range() method to retrieve a PointerRange to it 2015-04-20 19:06:47 +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 0ac7bb4302 initial sort support + cleanups 2015-04-18 20:21:59 +01:00
q66 32d925d298 define support for OutputRange 2015-04-17 21:33:01 +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 603cb42eca fix insert + add move_range 2015-04-16 23:26:10 +01:00
q66 00175b59ad rename range insert to insert_range (prevent ambiguous calls) 2015-04-16 23:18:30 +01:00
q66 1458188593 initializer-list insert for vector 2015-04-16 23:11:56 +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 953e4a2afa cleanup insert + move variant 2015-04-16 22:44:37 +01:00
q66 172b62fa92 use moving in insert 2015-04-16 22:33:31 +01:00