q66
|
9677274b3f
|
each -> iter
|
2015-06-26 21:01:16 +01:00 |
|
q66
|
dc58d09388
|
make allocator based containers more predictable + simplified PointerRange
|
2015-06-17 00:15:44 +01:00 |
|
q66
|
1c6f3a74e1
|
follow allocator propagation on swap + do not free memory unless necessary
|
2015-06-16 20:02:52 +01:00 |
|
q66
|
4b0add9020
|
follow allocator propagation rules
|
2015-06-16 19:57:08 +01:00 |
|
q66
|
e0a498806a
|
hash table copy/move ctor support
|
2015-06-16 19:12:03 +01:00 |
|
q66
|
e15bb6adf3
|
prevent vector/string/map range constructors to be used when the input arg is not a range (prevent conflicts with other ctors)
|
2015-06-15 19:44:00 +01:00 |
|
q66
|
d24d891977
|
more hashtable apis
|
2015-06-14 03:38:08 +01:00 |
|
q66
|
e4738e0368
|
implement a basic CompressedPair for internal container usage (removes code dups)
|
2015-06-13 16:32:03 +01:00 |
|
q66
|
4d97aa7ac2
|
add get_allocator
|
2015-06-12 20:13:27 +01:00 |
|
q66
|
79774efbe6
|
more generalized PointerRange (but only optionally)
|
2015-06-11 00:41:41 +01:00 |
|
q66
|
5608cb97ac
|
fix
|
2015-06-11 00:21:11 +01:00 |
|
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 |
|