Commit graph

199 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 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 523c0e0ad1 const correctness 2015-05-23 18:59:14 +01:00
q66 7c91e1cc5b implement random access requirements on MapRange 2015-05-23 18:55:22 +01:00
q66 8c96179bd6 add octa::algorithm::map 2015-05-23 18:44:06 +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 56d8e481c8 .get() -> .data() 2015-05-21 00:45:34 +01:00
q66 f919983e03 array fixes 2015-05-21 00:34:42 +01:00
q66 64810e4006 remove the noexcept stuff; nothing in octastd ever throws 2015-05-20 22:05:41 +01:00
q66 25fb30b524 atomic.h: use strongly typed enum 2015-05-20 00:24:20 +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 700905f594 style fix 2015-05-18 01:59:04 +01:00
q66 767226a4ce array in_range fix 2015-05-18 01:57:44 +01:00
q66 1d4e01ad5e array empty fix 2015-05-18 01:56:31 +01:00
q66 f4ef47e75a noexcept fix 2015-05-17 22:59:32 +01:00
q66 5a991f3e21 array::in_range 2015-05-17 22:51:42 +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 58faefa317 initial impl of allocator 2015-05-13 20:56:53 +01:00
q66 3e51a86aa4 add header file for stream (no implementation yet) 2015-05-12 21:27:46 +01:00
q66 e3d5da3e66 octa::Hash in functional.h (+ specializations for all primitive types) 2015-05-10 21:57:52 +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 680c0da0a6 some traits cleanup 2015-05-06 19:52:07 +01:00
q66 a6bb089283 use some standard builtin traits 2015-05-05 19:30:31 +01:00
q66 61a66f7372 more IsIntegral specializations 2015-05-04 00:00:27 +01:00
q66 fb0c7571c1 more style/consistency stuff 2015-05-03 23:50:21 +01:00
q66 98e7566ad9 coding style 2015-05-03 23:44:48 +01:00
q66 6a9d3b8ea7 coding style 2015-05-03 23:34:21 +01:00
q66 ef9995ae51 remove PointerTraits; replace with individual using aliases 2015-05-03 22:39:32 +01:00
q66 2d10cd9280 ditch RangeTraits for alias definitions 2015-05-03 21:54:26 +01:00
q66 da69a57015 add input func check to octa::Function 2015-05-03 16:09:47 +01:00
q66 64f403011a deprecate MSVC support for the time being 2015-05-02 22:12:28 +01:00
q66 897f1873f7 remove macros 2015-05-01 21:17:28 +01:00
q66 084139b731 remove more macros 2015-05-01 21:09:44 +01:00
q66 367a586bf7 start demacrofying msvc implementation 2015-05-01 20:59:47 +01:00
q66 302e674141 initial support for atomics 2015-05-01 20:34:32 +01:00
q66 8fe03741cc fix vector noexcept on gcc 4.8 2015-05-01 20:21:47 +01:00
q66 cbd6d66eca box optimization - compress with empty deleters 2015-04-30 18:53:38 +01:00
q66 95711030aa more noexcept for pair 2015-04-29 18:52:00 +01:00
q66 b1192b248c noexcept formatting 2015-04-29 01:38:16 +01:00
q66 ef47ade61f basic Pair type implementation 2015-04-29 00:01:22 +01:00
q66 1a2d606ae7 noexcept the library 2015-04-28 18:48:58 +01:00
q66 f4b0691003 noexcept for functional 2015-04-28 02:30:17 +01:00
q66 bd86d82446 noexcept for memory.h 2015-04-28 02:20:14 +01:00
q66 56f19204a2 style update 2015-04-27 20:23:38 +01:00
q66 709bcb1362 add octa::make_box 2015-04-27 20:05:33 +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 990a7646da initial Box and pointer traits impl 2015-04-27 19:01:07 +01:00
q66 b37921ee93 add octa::clamp 2015-04-26 18:45:10 +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 8dd7ae1eda export core types outside of octa 2015-04-24 18:51:35 +01:00
q66 f106c5ae24 get rid of namespace internal 2015-04-24 18:16:35 +01:00
q66 cca0a62d34 use IsPOD rather than !IsClass to decide whether to memcpy etc. 2015-04-23 23:31:52 +01:00
q66 89bab3362b add another condition on Function in-place optimization 2015-04-23 21:05:09 +01:00
q66 e92f5bba4b remove traits dependency on utility.h and thus the need to put some of the traits in utility.h 2015-04-23 20:53:05 +01:00
q66 0c217e2128 add all remaining traits + cleanup, remove namespace internal etc 2015-04-23 20:38:18 +01:00
q66 a80f535b5d IsDestructible and IsNothrowDestructible 2015-04-23 19:26:26 +01:00
q66 8557b0abe1 some platforms' C libs don't have max_align_t 2015-04-23 19:07:13 +01:00
q66 c388e8c09a add lots of new traits 2015-04-23 18:47:33 +01:00
q66 fff049d6c7 add IsConvertible 2015-04-23 02:39:43 +01:00
q66 c1e9b5e5e5 implement more traits + enable Decay (the remaining traits were implemented for it) 2015-04-23 02:16:48 +01:00
q66 8cfd714a2d implement IsFunction + other traits 2015-04-23 01:49:24 +01:00
q66 456704caa2 more traits 2015-04-23 01:26:03 +01:00
q66 7779563bd9 add some more type traits, reorder the others 2015-04-23 00:26:53 +01:00
q66 90cecea052 correctly forward 2015-04-22 23:28:43 +01:00
q66 9a7a832fe3 move mem_fn to functional 2015-04-22 23:25:02 +01:00
q66 af9eff5c6d add functional::Function (generic wrapper around any callable type) 2015-04-22 18:42:58 +01:00
q66 87e324bb1c traits::enable_if, algorithm::iota 2015-04-21 23:54:26 +01:00
q66 ff5fc7368d add EnumeratedRange + octa::enumerate 2015-04-21 17:58:36 +01:00
q66 e6a176c870 add Array container 2015-04-21 17:57:57 +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 ab95885b4a add more algorithms 2015-04-21 02:33:58 +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 9885909485 add algorithm::all_of, any_of, none_of 2015-04-20 02:21:27 +01:00
q66 6d60b051e8 add algorithm::for_each 2015-04-20 02:14:55 +01:00
q66 c4aa7242fc add algorithm::is_partitioned 2015-04-20 02:06:42 +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 c36a653824 use introsort for sorting 2015-04-18 23:12:45 +01:00
q66 f9a298c1b8 move quicksort to internal namespace 2015-04-18 22:43:20 +01:00
q66 4850e2454f don't use lambda 2015-04-18 22:40:38 +01:00
q66 708100d171 add quicksort 2015-04-18 22:33:19 +01:00
q66 dc2dacaf5d add slicing for finite random access ranges 2015-04-18 22:05:24 +01:00
q66 cd0b6fc2fc add algorithm::partition 2015-04-18 21:46:31 +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 1177d94b6e implement ReferenceWrapper + ref/cref + address_of 2015-04-18 19:03:11 +01:00
q66 799c9fed94 add not1/not2 2015-04-18 18:36:06 +01:00
q66 2e750f6874 give IntegralConstant an "operator value_type" and "value_type operator()" 2015-04-18 18:32:25 +01:00
q66 cdc63eaf63 allow pointers to objects to be passed to calls with mem_fn 2015-04-18 17:28:11 +01:00
q66 c68742811b specialize mem_fn types for const 2015-04-18 17:23:59 +01:00