q66
|
3cf06f228d
|
Vector::insert/insert_range now returns a range
|
2015-06-11 00:20:21 +01:00 |
|
q66
|
657118f037
|
simpler and more correct vector packed pair
|
2015-06-11 00:14:19 +01:00 |
|
q66
|
b079d3b51d
|
use the pointer/reference typedefs + redefine them with allocator traits
|
2015-06-11 00:08:56 +01:00 |
|
q66
|
905d9e8d3c
|
actually get rid of the reach() stuff, introduce new Reverse and Movable range traits and rename range.reach() to range.reverse()
|
2015-06-10 00:57:46 +01:00 |
|
q66
|
ae68f1f379
|
octa::ceach,reach,creach
|
2015-06-09 21:18:43 +01:00 |
|
q66
|
1553e2d30f
|
add StringRange (provides hashing and proper ToString), make it the range for String, add extra ptr-ctor for Vector and new ctors for String, optimizations
|
2015-06-09 19:02:44 +01:00 |
|
q66
|
ea42a5e841
|
use new type aliases + refactoring + namespacing
|
2015-06-08 21:20:12 +01:00 |
|
q66
|
6eae6487c4
|
replace usages of typedef with "using"
|
2015-06-08 00:55:08 +01:00 |
|
q66
|
84d78ba87a
|
deuglify template args
|
2015-06-04 22:57:06 +01:00 |
|
q66
|
9b0a6e630b
|
deuglify vector.h
|
2015-06-04 00:06:43 +01:00 |
|
q66
|
6c20f00494
|
space-optimize vector (don't take up any additional space with empty allocator)
|
2015-06-03 22:31:02 +01:00 |
|
q66
|
216fdb5392
|
initial vector and string allocator support (currently space-inefficient)
|
2015-06-03 22:04:48 +01:00 |
|
q66
|
ff90009450
|
get rid of stupid Type suffixes (we already know it's a type from the name)
|
2015-06-03 20:00:41 +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
|
77f7fed0df
|
more tests + cleaner test runner
|
2015-05-31 15:50:09 +01:00 |
|
q66
|
3c6ef6e593
|
initial support for "range halves" ("range iterator")
|
2015-05-29 23:32:25 +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
|
434816840b
|
octa::concat
|
2015-05-27 22:09:22 +01:00 |
|
q66
|
e9367246b5
|
completely genericized octa::swap (no need for global overloads ever)
|
2015-05-26 21:29:44 +01:00 |
|
q66
|
42167fdc5a
|
fix vector::swap
|
2015-05-26 21:16:59 +01:00 |
|
q66
|
f0380a2aaf
|
initializer list fixes
|
2015-05-25 19:08:53 +01:00 |
|
q66
|
8718630a5a
|
il.range() -> il.each(), add algorithm::filter(range, pred)
|
2015-05-24 02:31:54 +01:00 |
|
q66
|
7589a93539
|
add some traits to check range for range types including proper type inheritance
|
2015-05-23 20:33:08 +01:00 |
|
q66
|
8908ac0506
|
new range category: FiniteRandomAccessRange
|
2015-05-23 20:00:03 +01:00 |
|
q66
|
3883a0da33
|
octa::Vector - new constructor and operator= for construction from range (+ random access specialization for efficiency)
|
2015-05-23 19:52:42 +01:00 |
|
q66
|
56d8e481c8
|
.get() -> .data()
|
2015-05-21 00:45:34 +01:00 |
|
q66
|
64810e4006
|
remove the noexcept stuff; nothing in octastd ever throws
|
2015-05-20 22:05:41 +01:00 |
|
q66
|
559a1afd26
|
noexcept fix
|
2015-05-19 01:23:41 +01:00 |
|
q66
|
704066954a
|
remove vector::pop_ret
|
2015-05-19 01:21:23 +01:00 |
|
q66
|
7e61799f8b
|
vector: do not free buffer in copy assignment unless necessary
|
2015-05-17 17:28:11 +01:00 |
|
q66
|
ed24618061
|
vector: clear does not free buffer + add operator= for initializer list
|
2015-05-17 17:11:56 +01:00 |
|
q66
|
98e7566ad9
|
coding style
|
2015-05-03 23:44:48 +01:00 |
|
q66
|
8fe03741cc
|
fix vector noexcept on gcc 4.8
|
2015-05-01 20:21:47 +01:00 |
|
q66
|
b1192b248c
|
noexcept formatting
|
2015-04-29 01:38:16 +01:00 |
|
q66
|
1a2d606ae7
|
noexcept the library
|
2015-04-28 18:48:58 +01:00 |
|
q66
|
56f19204a2
|
style update
|
2015-04-27 20:23:38 +01:00 |
|
q66
|
d7778cf259
|
ditch the separate "type" struct
|
2015-04-27 19:38:34 +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
|
cca0a62d34
|
use IsPOD rather than !IsClass to decide whether to memcpy etc.
|
2015-04-23 23:31:52 +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
|
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
|
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
|
dc2dacaf5d
|
add slicing for finite random access ranges
|
2015-04-18 22:05:24 +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
|
32d925d298
|
define support for OutputRange
|
2015-04-17 21:33:01 +01:00 |
|
q66
|
0116d3cf4c
|
equality checking for NumberRange
|
2015-04-17 20:20:38 +01:00 |
|