q66
|
c6db1a8b47
|
check formatting character and store it
|
2015-07-02 20:58:04 +01:00 |
|
q66
|
c5c510d168
|
separate formatting logic into its own data structure + cleanup + simplify
|
2015-07-02 19:02:59 +01:00 |
|
q66
|
4bb689cdc2
|
parse flags, width, precision and apply them in a few places
|
2015-07-02 02:00:05 +01:00 |
|
q66
|
380990c129
|
don't increment fmt in asserts
|
2015-07-01 23:15:04 +01:00 |
|
q66
|
598fcbfa25
|
use c style formatting for strings (but type-generic, i.e. %s prints any value)
|
2015-07-01 23:11:42 +01:00 |
|
q66
|
e6e1020702
|
get_n is now called copy (and doesn't modify itself unless it's InputRange)
|
2015-07-01 22:32:41 +01:00 |
|
q66
|
dd157f8be8
|
fix get_n
|
2015-07-01 22:26:56 +01:00 |
|
q66
|
98decde76a
|
more reliable output range check + add a way to omit the ocunt on get_n
|
2015-07-01 22:21:44 +01:00 |
|
q66
|
94fc7017cd
|
fix vector from-range ctors + cleanup
|
2015-07-01 22:03:45 +01:00 |
|
q66
|
e31c227567
|
add optional range methods get_n/put_n (with accurate default implementations, overridable for performance)
|
2015-07-01 21:46:58 +01:00 |
|
q66
|
a23525bacf
|
make put() on OutputRanges return bool
|
2015-07-01 21:12:45 +01:00 |
|
q66
|
f36c35afae
|
add StringBase::length which will eventually deal with unicode and return the number of codepoints
|
2015-07-01 21:03:44 +01:00 |
|
q66
|
c86d31e5c2
|
use 64bit file offsets and _ftelli64/_fseeki64 on Windows + specialize some FileStream methods
|
2015-07-01 21:02:01 +01:00 |
|
q66
|
1de58ac2b6
|
make most funcs taking strings allocator independent
|
2015-07-01 20:20:37 +01:00 |
|
q66
|
ea1325543d
|
more formatter work, type traits fixes, formatting on all streams
|
2015-07-01 18:51:39 +01:00 |
|
q66
|
b5748267d9
|
namespace detail stuff
|
2015-07-01 02:29:42 +01:00 |
|
q66
|
011aea6fbb
|
initial format string support
|
2015-07-01 02:23:07 +01:00 |
|
q66
|
809e4825ae
|
fixes
|
2015-07-01 01:46:01 +01:00 |
|
q66
|
b51e84c8b0
|
hash char */const char * as a string by default (to avoid that, cast to byte ptr)
|
2015-06-30 23:30:48 +01:00 |
|
q66
|
06eeec1ca7
|
schar/uchar -> sbyte/byte, extend write/writeln on Stream, rename Stream::read/write to read/write_bytes to clear ambiguities and overloads, fixes
|
2015-06-30 23:07:28 +01:00 |
|
q66
|
5ace1c4777
|
vararg and type-generic octa::write(ln)
|
2015-06-30 22:41:17 +01:00 |
|
q66
|
656ddb76af
|
split filestreams into octa/io.hh + add more funcs, methods etc
|
2015-06-30 19:25:40 +01:00 |
|
q66
|
1e7640031a
|
delete default ctors on all core range types
|
2015-06-29 23:33:20 +01:00 |
|
q66
|
57dbad0282
|
remove the need for range default constructors for RangeIterator support
|
2015-06-29 23:21:24 +01:00 |
|
q66
|
f8c99b9f50
|
fix type traits aligned storage
|
2015-06-29 23:18:08 +01:00 |
|
q66
|
d8d8ea7151
|
put EnableIf in template type params where possible
|
2015-06-29 21:59:09 +01:00 |
|
q66
|
2f16288671
|
fix includes
|
2015-06-29 21:33:18 +01:00 |
|
q66
|
b4146b0523
|
more reliable and accurate empty() checking in StreamRange
|
2015-06-29 18:54:25 +01:00 |
|
q66
|
41c0ac0fdd
|
return a pointer from the "at" methods (which is nullptr on non-existent items)
|
2015-06-28 22:16:13 +01:00 |
|
q66
|
9f58a6c399
|
add octa::Maybe, representing optional values for simpler error handling
|
2015-06-28 21:28:54 +01:00 |
|
q66
|
10fa69dcd1
|
constexpr initializer_list
|
2015-06-28 20:39:27 +01:00 |
|
q66
|
c53efaba92
|
fix hash table guard too
|
2015-06-28 16:05:27 +01:00 |
|
q66
|
94daa4f76b
|
fix include guards
|
2015-06-28 16:04:49 +01:00 |
|
q66
|
36c264b4b0
|
make .cc the extension for source files and .hh the extension for header files
|
2015-06-28 15:39:04 +01:00 |
|
q66
|
9831b15b8c
|
rename some default functors
|
2015-06-27 15:00:16 +01:00 |
|
q66
|
ab72b4a602
|
fix streamoffset empty checking
|
2015-06-27 03:19:00 +01:00 |
|
q66
|
3e2b21ae4c
|
streamrange fix
|
2015-06-27 03:02:00 +01:00 |
|
q66
|
6097d1bd53
|
make operator() const in endian functors
|
2015-06-27 02:59:54 +01:00 |
|
q66
|
015c888af6
|
stream fixes
|
2015-06-27 02:59:10 +01:00 |
|
q66
|
70e50d2f41
|
rename to FromBigEndian/FromLilEndian
|
2015-06-27 02:50:26 +01:00 |
|
q66
|
274de0e70d
|
add functional::EndianSwap,EndianSwapLil,EndianSwapBig (+ corresponding plain funcs)
|
2015-06-27 02:38:58 +01:00 |
|
q66
|
da0019dc09
|
add endian swap funcs to platform.h
|
2015-06-27 02:05:25 +01:00 |
|
q66
|
715a608b3a
|
generic StreamRange (defaulting to char)
|
2015-06-27 01:02:28 +01:00 |
|
q66
|
a840b20ea3
|
forgot to remove inheritance
|
2015-06-27 00:59:16 +01:00 |
|
q66
|
32b59e0c2e
|
add platform.h to easily check for different systems and archs
|
2015-06-26 23:37:39 +01:00 |
|
q66
|
55d09cb437
|
delete copy ctor on FileStream
|
2015-06-26 21:20:05 +01:00 |
|
q66
|
45e468fed3
|
separate StreamRange from Stream
|
2015-06-26 21:15:02 +01:00 |
|
q66
|
9677274b3f
|
each -> iter
|
2015-06-26 21:01:16 +01:00 |
|
q66
|
29bf4c3b76
|
streams always read/write by bytes
|
2015-06-26 20:41:11 +01:00 |
|
q66
|
24ec88c37b
|
initial filestream work
|
2015-06-26 20:18:40 +01:00 |
|
q66
|
6b32072694
|
some initial stream api stuff
|
2015-06-26 02:30:48 +01:00 |
|
q66
|
9a6caffefe
|
fix potential gcc warnings
|
2015-06-26 00:14:18 +01:00 |
|
q66
|
3a1ea741f1
|
do not move-on-return in order to allow copy elision
|
2015-06-25 18:59:26 +01:00 |
|
q66
|
501beee633
|
in HashRange, keep p_beg always pointing to the same bucket as p_node
|
2015-06-25 01:19:21 +01:00 |
|
q66
|
a4d33c5cd7
|
use friends to handle copy constructors correctly
|
2015-06-25 01:16:19 +01:00 |
|
q66
|
ddb18b9d0d
|
relax RangeHalf copy constructor a little (allow convertible range types)
|
2015-06-25 01:07:11 +01:00 |
|
q66
|
dbb266b5bd
|
disallow range half trait checks
|
2015-06-24 20:03:23 +01:00 |
|
q66
|
4c2376ea2d
|
no need for distance_front either
|
2015-06-21 22:47:17 +01:00 |
|
q66
|
6f2ab37b55
|
no need to implement push_front_n on TakeRange
|
2015-06-21 22:46:29 +01:00 |
|
q66
|
154b1c7588
|
operator+ and operator- should be const
|
2015-06-21 22:29:17 +01:00 |
|
q66
|
f93094735e
|
remove duplications in all hash table code + unify hashes and multihashes into a single struct
|
2015-06-18 02:32:43 +01:00 |
|
q66
|
b20a6ec38e
|
hash table cleanups
|
2015-06-18 01:41:00 +01:00 |
|
q66
|
7cf50febd9
|
cleaner multihash handling
|
2015-06-18 01:17:33 +01:00 |
|
q66
|
e0ce128d13
|
remove unneeded templates
|
2015-06-17 21:37:22 +01:00 |
|
q66
|
281371bb0c
|
reduce code duplication
|
2015-06-17 21:33:49 +01:00 |
|
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 |
|