q66
|
49b9a8d17f
|
add octa::make_pair and octa::exchange
|
2015-06-02 02:01:32 +01:00 |
|
q66
|
bfc94e31d7
|
uglify the code by using unique identifiers only (prevent macro conflicts)
|
2015-06-02 00:57:34 +01:00 |
|
q66
|
67600c4637
|
first -> front, last -> back
|
2015-06-01 01:13:37 +01:00 |
|
q66
|
3c6ef6e593
|
initial support for "range halves" ("range iterator")
|
2015-05-29 23:32:25 +01:00 |
|
q66
|
15507e0143
|
remove useless equality/inequality operators on ranges
|
2015-05-29 21:49:07 +01:00 |
|
q66
|
a54db37a9c
|
get const right on ranges
|
2015-05-29 20:21:35 +01:00 |
|
q66
|
26f83b9efb
|
pop_first() and pop_last() now return bool instead of void (true if popped, false if not)
|
2015-05-29 20:02:40 +01:00 |
|
q66
|
38fc61481a
|
initial support for "range extension" - i.e. push_first and push_last methods (+ push_first_n, push_last_n)
|
2015-05-29 19:52:20 +01:00 |
|
q66
|
c1be7f097d
|
various ToString improvements
|
2015-05-28 19:58:05 +01:00 |
|
q66
|
08bb790612
|
stl-like initializer list interface (allow octastd to be used with stl outside of octaforge)
|
2015-05-27 23:46:58 +01:00 |
|
q66
|
1371a32db7
|
use size() instead of length()
|
2015-05-27 23:19:16 +01:00 |
|
q66
|
28828ff448
|
fix swap_ranges api to correctly handle differently sized ranges
|
2015-05-27 00:49:35 +01:00 |
|
q66
|
ea83f402ab
|
octa::algorithm::{foldl,foldr}
|
2015-05-25 20:46:49 +01:00 |
|
q66
|
ffbb7da63a
|
unexpose insertion sort
|
2015-05-24 18:22:35 +01:00 |
|
q66
|
96d2404c0e
|
allow different return type for octa::map callbacks
|
2015-05-24 14:34:37 +01:00 |
|
q66
|
b2f085b9da
|
more accurate range category for FilterRange
|
2015-05-24 14:16:20 +01:00 |
|
q66
|
8718630a5a
|
il.range() -> il.each(), add algorithm::filter(range, pred)
|
2015-05-24 02:31:54 +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
|
2d10cd9280
|
ditch RangeTraits for alias definitions
|
2015-05-03 21:54:26 +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
|
b37921ee93
|
add octa::clamp
|
2015-04-26 18:45:10 +01:00 |
|
q66
|
f106c5ae24
|
get rid of namespace internal
|
2015-04-24 18:16:35 +01:00 |
|
q66
|
87e324bb1c
|
traits::enable_if, algorithm::iota
|
2015-04-21 23:54:26 +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
|
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
|
cd0b6fc2fc
|
add algorithm::partition
|
2015-04-18 21:46:31 +01:00 |
|
q66
|
0ac7bb4302
|
initial sort support + cleanups
|
2015-04-18 20:21:59 +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 |
|