Commit Graph

1299 Commits (27ce727eefd92c7db1d90c7f1e10b9f2ab4d5960)

Author SHA1 Message Date
Daniel Kolesa e98b8946ae define size_type for ranges 2015-04-27 19:53:48 +01:00
Daniel Kolesa d7778cf259 ditch the separate "type" struct 2015-04-27 19:38:34 +01:00
Daniel Kolesa 990a7646da initial Box and pointer traits impl 2015-04-27 19:01:07 +01:00
Daniel Kolesa b37921ee93 add octa::clamp 2015-04-26 18:45:10 +01:00
Daniel Kolesa 0245db3fec rename traits->type_traits 2015-04-25 16:13:21 +01:00
Daniel Kolesa 6de48f1f21 refactor traits: e.g. "RemoveCV<T>" instead of "typename RemoveCV<T>::type" 2015-04-24 20:03:16 +01:00
Daniel Kolesa 8dd7ae1eda export core types outside of octa 2015-04-24 18:51:35 +01:00
Daniel Kolesa f106c5ae24 get rid of namespace internal 2015-04-24 18:16:35 +01:00
Daniel Kolesa cca0a62d34 use IsPOD rather than !IsClass to decide whether to memcpy etc. 2015-04-23 23:31:52 +01:00
Daniel Kolesa 89bab3362b add another condition on Function in-place optimization 2015-04-23 21:05:09 +01:00
Daniel Kolesa 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
Daniel Kolesa 0c217e2128 add all remaining traits + cleanup, remove namespace internal etc 2015-04-23 20:38:18 +01:00
Daniel Kolesa a80f535b5d IsDestructible and IsNothrowDestructible 2015-04-23 19:26:26 +01:00
Daniel Kolesa 8557b0abe1 some platforms' C libs don't have max_align_t 2015-04-23 19:07:13 +01:00
Daniel Kolesa c388e8c09a add lots of new traits 2015-04-23 18:47:33 +01:00
Daniel Kolesa fff049d6c7 add IsConvertible 2015-04-23 02:39:43 +01:00
Daniel Kolesa c1e9b5e5e5 implement more traits + enable Decay (the remaining traits were implemented for it) 2015-04-23 02:16:48 +01:00
Daniel Kolesa 8cfd714a2d implement IsFunction + other traits 2015-04-23 01:49:24 +01:00
Daniel Kolesa 456704caa2 more traits 2015-04-23 01:26:03 +01:00
Daniel Kolesa 7779563bd9 add some more type traits, reorder the others 2015-04-23 00:26:53 +01:00
Daniel Kolesa 90cecea052 correctly forward 2015-04-22 23:28:43 +01:00
Daniel Kolesa 9a7a832fe3 move mem_fn to functional 2015-04-22 23:25:02 +01:00
Daniel Kolesa af9eff5c6d add functional::Function (generic wrapper around any callable type) 2015-04-22 18:42:58 +01:00
Daniel Kolesa 87e324bb1c traits::enable_if, algorithm::iota 2015-04-21 23:54:26 +01:00
Daniel Kolesa ff5fc7368d add EnumeratedRange + octa::enumerate 2015-04-21 17:58:36 +01:00
Daniel Kolesa e6a176c870 add Array container 2015-04-21 17:57:57 +01:00
Daniel Kolesa 6807d22df5 satisfy OutputRange on MoveRange and PointerRange (might be mutable), add more algorithms 2015-04-21 17:56:36 +01:00
Daniel Kolesa ab95885b4a add more algorithms 2015-04-21 02:33:58 +01:00
Daniel Kolesa 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
Daniel Kolesa 9885909485 add algorithm::all_of, any_of, none_of 2015-04-20 02:21:27 +01:00
Daniel Kolesa 6d60b051e8 add algorithm::for_each 2015-04-20 02:14:55 +01:00
Daniel Kolesa c4aa7242fc add algorithm::is_partitioned 2015-04-20 02:06:42 +01:00
Daniel Kolesa ed0b28f2e0 add PointerRange constructor for pointer + length 2015-04-19 20:53:02 +01:00
Daniel Kolesa 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
Daniel Kolesa c36a653824 use introsort for sorting 2015-04-18 23:12:45 +01:00
Daniel Kolesa f9a298c1b8 move quicksort to internal namespace 2015-04-18 22:43:20 +01:00
Daniel Kolesa 4850e2454f don't use lambda 2015-04-18 22:40:38 +01:00
Daniel Kolesa 708100d171 add quicksort 2015-04-18 22:33:19 +01:00
Daniel Kolesa dc2dacaf5d add slicing for finite random access ranges 2015-04-18 22:05:24 +01:00
Daniel Kolesa cd0b6fc2fc add algorithm::partition 2015-04-18 21:46:31 +01:00
Daniel Kolesa 35424dd248 assignment op overloads for reverserange/moverange (c++ deletes them because of move ctor) 2015-04-18 20:31:07 +01:00
Daniel Kolesa 0ac7bb4302 initial sort support + cleanups 2015-04-18 20:21:59 +01:00
Daniel Kolesa 1177d94b6e implement ReferenceWrapper + ref/cref + address_of 2015-04-18 19:03:11 +01:00
Daniel Kolesa 799c9fed94 add not1/not2 2015-04-18 18:36:06 +01:00
Daniel Kolesa 2e750f6874 give IntegralConstant an "operator value_type" and "value_type operator()" 2015-04-18 18:32:25 +01:00
Daniel Kolesa cdc63eaf63 allow pointers to objects to be passed to calls with mem_fn 2015-04-18 17:28:11 +01:00
Daniel Kolesa c68742811b specialize mem_fn types for const 2015-04-18 17:23:59 +01:00
Daniel Kolesa cc4113459a implement octa::mem_fn 2015-04-18 17:19:58 +01:00
Daniel Kolesa f549d876e4 ResultOf trait, declval 2015-04-18 16:48:54 +01:00
Daniel Kolesa 2c03469cf8 more type traits 2015-04-18 16:09:08 +01:00