q66
|
ea70d2e467
|
add octa::Multimap and octa::Multiset
|
2015-06-17 21:25:34 +01:00 |
|
q66
|
bbb5fbf224
|
stricter bucket/hashrange ctor test
|
2015-06-17 19:19:08 +01:00 |
|
q66
|
7a63619852
|
actually only check for sameness without qualifiers
|
2015-06-17 02:30:36 +01:00 |
|
q66
|
d8bf7b9c69
|
make hash/bucket ranges properly convertible
|
2015-06-17 02:28:26 +01:00 |
|
q66
|
ad0521bdfa
|
modify StringRange in the same way
|
2015-06-17 02:00:39 +01:00 |
|
q66
|
dafd5a17b5
|
loosen up PointerRange ctor rules (allow construction of PointerRange<T> from any PointerRange<U> where U * is convertible to T *)
|
2015-06-17 00:44:53 +01:00 |
|
q66
|
dc58d09388
|
make allocator based containers more predictable + simplified PointerRange
|
2015-06-17 00:15:44 +01:00 |
|
q66
|
ec44dbbfbd
|
fix find() for const containers
|
2015-06-16 22:54:04 +01:00 |
|
q66
|
2b05cb9297
|
Map::find, Set::find
|
2015-06-16 22:51:57 +01:00 |
|
q66
|
4a86120a8f
|
add octa::Set (hash table set)
|
2015-06-16 22:19:20 +01:00 |
|
q66
|
3a659c1412
|
much simpler rehashing that doesn't invalidate references and allocates less
|
2015-06-16 21:52:37 +01:00 |
|
q66
|
7265aee0d9
|
automatic rehashing
|
2015-06-16 21:36:16 +01:00 |
|
q66
|
eca4310caf
|
support for hashtable assignment ops
|
2015-06-16 20:44:41 +01:00 |
|
q66
|
cfe7450d4b
|
hashtable swap allocator fix
|
2015-06-16 20:05:45 +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
|
3b65b0cb99
|
use allocators for hashtables always
|
2015-06-16 01:46:34 +01:00 |
|
q66
|
8324f5f9cc
|
revamped HashRange
|
2015-06-16 01:24:19 +01:00 |
|
q66
|
aa2a0afcc1
|
add BucketRange instead of abusing HashRange
|
2015-06-15 22:10:44 +01:00 |
|
q66
|
c456843f59
|
bucket interface
|
2015-06-15 21:06:34 +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
|
7cdac42c4a
|
sfinae friendly range traits + IsInputRange etc now works on arbitrary non-range types
|
2015-06-15 18:54:00 +01:00 |
|
q66
|
13e553f85c
|
hash initializer list and range ctors
|
2015-06-15 02:22:10 +01:00 |
|
q66
|
8ce2e67e36
|
emplace support on hashtables
|
2015-06-15 02:09:53 +01:00 |
|
q66
|
1ae3957e5c
|
more hash ctors
|
2015-06-15 01:35:37 +01:00 |
|
q66
|
4715e09f35
|
hashtble rehash support
|
2015-06-15 00:18:08 +01:00 |
|
q66
|
e2d8283eb7
|
cleaner hash range handling
|
2015-06-14 19:48:55 +01:00 |
|
q66
|
c287d7e98a
|
push_front is only necessary on bidir ranges or better now
|
2015-06-14 04:53:38 +01:00 |
|
q66
|
fa7bf1d3db
|
initial range interface for hashtables
|
2015-06-14 04:32:01 +01:00 |
|
q66
|
c9e3ebd773
|
load factor management api
|
2015-06-14 03:43:11 +01:00 |
|
q66
|
d24d891977
|
more hashtable apis
|
2015-06-14 03:38:08 +01:00 |
|
q66
|
c5678238c3
|
move semantics/perfect forwarding for hashtable keys
|
2015-06-14 03:04:03 +01:00 |
|
q66
|
48b8ba7522
|
initial hashtable/map implementation
|
2015-06-14 02:46:46 +01:00 |
|
q66
|
850d20093a
|
string equality + tweaks
|
2015-06-14 02:36:20 +01:00 |
|
q66
|
5c0f051eac
|
forwarding ctors
|
2015-06-13 16:36:47 +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
|
59c896e34f
|
remove unnecessary arg
|
2015-06-10 01:18:56 +01:00 |
|
q66
|
e8114feaf0
|
the traits are actually not necessary
|
2015-06-10 00:59:39 +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
|
6b87f4c4ac
|
no need to specify template args there
|
2015-06-10 00:16:25 +01:00 |
|
q66
|
f9adf08ef9
|
turn make_move_range into .movable() on any range, and make_half_range(h1, h2) into h1.each(h2)
|
2015-06-10 00:13:20 +01:00 |
|
q66
|
6b2a7fb43c
|
avoid copies
|
2015-06-09 23:07:53 +01:00 |
|
q66
|
40b52ed765
|
more efficient sort
|
2015-06-09 22:56:40 +01:00 |
|