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 |
|
q66
|
cc4113459a
|
implement octa::mem_fn
|
2015-04-18 17:19:58 +01:00 |
|
q66
|
f549d876e4
|
ResultOf trait, declval
|
2015-04-18 16:48:54 +01:00 |
|
q66
|
2c03469cf8
|
more type traits
|
2015-04-18 16:09:08 +01:00 |
|
q66
|
6247093ad9
|
add BinaryNegate and UnaryNegate
|
2015-04-18 02:50:20 +01:00 |
|