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 |
|
q66
|
c147f57588
|
add functional.h (for now with operator functor defs) + skeleton for algorithm.h
|
2015-04-18 02:35:36 +01:00 |
|
q66
|
296b7cdeb9
|
move move/forward to utility.h
|
2015-04-18 00:11:16 +01:00 |
|
q66
|
97fd88be62
|
octa::swap
|
2015-04-18 00:07:37 +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
|
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 |
|
q66
|
66f7bc90c2
|
range category tags + cleanup
|
2015-04-16 21:50:53 +01:00 |
|
q66
|
b3a49b597c
|
define a range and const_range type for containers
|
2015-04-16 20:40:59 +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
|
c27a77b611
|
public inheritance for ranges by default
|
2015-04-16 01:07:58 +01:00 |
|
q66
|
c79e5757f9
|
initial proof-of-concept implementation of ranges and range iterator
|
2015-04-16 00:18:00 +01:00 |
|
q66
|
e12b221112
|
use nullptr
|
2015-04-15 22:41:32 +01:00 |
|
q66
|
e2f43ed25e
|
initializer list support + insert on vector
|
2015-04-15 22:38:35 +01:00 |
|
q66
|
9d5acc2337
|
more vector utils
|
2015-04-15 22:09:35 +01:00 |
|
q66
|
dba2ac673f
|
split new implementations
|
2015-04-15 01:39:26 +01:00 |
|
q66
|
6767157db9
|
use static_cast
|
2015-04-14 23:25:29 +01:00 |
|
q66
|
d26db78f0d
|
move stuff instead of copy, forward correctly in emplace_back
|
2015-04-14 23:14:46 +01:00 |
|
q66
|
2f56d5b52b
|
vector move ctor + emplace_back
|
2015-04-14 23:04:51 +01:00 |
|
q66
|
f70d8e792d
|
mark explicit
|
2015-04-14 22:21:17 +01:00 |
|
q66
|
16c1cc203e
|
working basic vector implementation
|
2015-04-14 22:16:06 +01:00 |
|
q66
|
df1b9daeaf
|
add move/forward and more traits
|
2015-04-14 01:12:15 +01:00 |
|
q66
|
0311af0ffe
|
IsClass and IsNumber traits
|
2015-04-13 23:20:04 +01:00 |
|
q66
|
0500e52295
|
moar traits
|
2015-04-13 23:04:25 +01:00 |
|
q66
|
292c5a35b7
|
moar traits + strip qualifiers first
|
2015-04-13 22:56:15 +01:00 |
|
q66
|
844fc88b9b
|
some core types, initial type traits
|
2015-04-13 22:25:31 +01:00 |
|
q66
|
6c6e7b69f7
|
some vector work
|
2015-04-12 21:41:02 +01:00 |
|
q66
|
323e992ea5
|
new namespace
|
2015-04-11 21:00:10 +01:00 |
|