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 |
|
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 |
|