Daniel Kolesa
077835e4b6
range system fixes, add iterator types to RangeHalf, optimize make_vector(R)
2017-02-01 18:29:42 +01:00
Daniel Kolesa
e0072773e1
remove custom hashtable; no longer necessary
2017-01-31 19:31:55 +01:00
Daniel Kolesa
1f83e8c1b0
cleaner range passing in second version of make_CONTAINER
2017-01-31 19:17:46 +01:00
Daniel Kolesa
fbdaf77b62
std::unordered_map initial range support (no extra template args yet)
2017-01-31 19:11:38 +01:00
Daniel Kolesa
6ec72a6ecd
add IteratorRange to make a range out of any two iterators
2017-01-30 22:07:12 +01:00
Daniel Kolesa
62b0c2ecf7
hash operator() needs to be const
2017-01-30 19:31:24 +01:00
Daniel Kolesa
1abf3bb3ad
remove Maybe (use optional instead)
2017-01-30 19:27:25 +01:00
Daniel Kolesa
0ee0d3231c
use standard types
2017-01-30 19:23:12 +01:00
Daniel Kolesa
2884f4b47b
use size_t and ptrdiff_t
2017-01-30 19:11:49 +01:00
Daniel Kolesa
1db7529ad9
remove custom hashing
2017-01-30 18:56:38 +01:00
Daniel Kolesa
343c684820
initial proper string integration
2017-01-30 01:16:29 +01:00
Daniel Kolesa
632147c5fb
bump compiler
2017-01-29 21:22:40 +01:00
Daniel Kolesa
58a361e6e0
remove ostd::Function after all (never supported allocators properly anyway)
2017-01-29 18:38:37 +01:00
Daniel Kolesa
2c7f98f57e
use standard swap
2017-01-29 15:56:02 +01:00
Daniel Kolesa
a8f7122d45
use standard declval
2017-01-29 15:29:11 +01:00
Daniel Kolesa
a41299505c
use unique_ptr
2017-01-29 15:16:13 +01:00
Daniel Kolesa
71515c5383
actually keep our own function because libstdc++'s has no allocator support
2017-01-28 23:00:05 +01:00
Daniel Kolesa
780f7e5b21
use standard function
2017-01-28 22:46:48 +01:00
Daniel Kolesa
c751275d83
remove remains of tuple headers
2017-01-28 19:39:50 +01:00
Daniel Kolesa
c8c24300ee
fully use standard tuples
2017-01-28 19:06:52 +01:00
Daniel Kolesa
2e7bba2c95
remove Pair, more standard tuple usage etc
2017-01-28 18:52:34 +01:00
Daniel Kolesa
7e96183648
start moving over to standard tuple
2017-01-28 18:30:31 +01:00
Daniel Kolesa
19226d51af
since we can't ADL for std container iter, use different system
...
This introduces ranged_traits structure, which by default works
for things defining .iter(), but also allows you to override it
per type at later stage, which comes in handy for std containers.
This is because we can't extend the std namespace in any way and
we still need to be able to add iterable functionality to std
containers even at later stage than iter() is defined.
2017-01-26 00:27:54 +01:00
Daniel Kolesa
0bf36b679a
iter extensions for std::array
2017-01-25 23:46:48 +01:00
Daniel Kolesa
56a3327dce
use standard vector and move/forward
2017-01-25 01:57:24 +01:00
Daniel Kolesa
27005f1715
remove native ostd threading/atomic stuff (just use c++11 ones)
2017-01-24 00:35:07 +01:00
Daniel Kolesa
41ad273c32
std allowed by default
2017-01-14 15:09:27 +01:00
Daniel Kolesa
32cd56d3c1
linux/gcc fixes
2017-01-09 17:58:40 +01:00
Daniel Kolesa
1eb3db64f0
use implicit ctor
2016-11-16 19:09:19 +01:00
Daniel Kolesa
c450600097
add type trait to check type size in bits
2016-11-15 22:51:15 +01:00
Daniel Kolesa
e7c6032edb
add initial numeric limits implementation (type-generic min/max/etc)
2016-11-15 22:46:03 +01:00
Daniel Kolesa
9e609e0057
rename disown to release (consistent with other places)
2016-09-18 19:30:55 +02:00
Daniel Kolesa
9251fb506f
remove unneeded code
2016-09-18 19:22:54 +02:00
Daniel Kolesa
9d174013e6
fix
2016-09-11 21:21:07 +02:00
Daniel Kolesa
519c9c7624
more noexcept and readme note
2016-09-11 21:20:03 +02:00
Daniel Kolesa
1586cedd17
noexcept for memory.hh
2016-09-11 20:46:53 +02:00
Daniel Kolesa
70a2b88898
allow non-static methods to be bound to Function
2016-09-11 19:57:42 +02:00
Daniel Kolesa
462e6f0659
new ostd::Function implementation (cleaner with better allocator awareness including stateful allocators)
2016-09-11 17:58:16 +02:00
Daniel Kolesa
f26cf02277
more internal traits for later use + cleaned ResultOf
2016-09-11 16:26:36 +02:00
Daniel Kolesa
211961cc31
implement piecewise construction for Pair/CompressedPair
2016-09-11 14:08:56 +02:00
Daniel Kolesa
7f2e5f67d4
fix
2016-09-06 19:55:17 +02:00
Daniel Kolesa
d31101d85e
typo fix
2016-09-02 18:58:24 +01:00
Daniel Kolesa
59ce413ef3
maybe enhancements
2016-09-02 18:52:58 +01:00
Daniel Kolesa
b202cb43ad
typo
2016-09-02 18:20:39 +01:00
Daniel Kolesa
0dc4d5074d
Maybe enhancements
2016-09-02 18:15:46 +01:00
Daniel Kolesa
cd748bd44a
remove unneeded code
2016-09-02 17:21:35 +01:00
Daniel Kolesa
c4039fa56f
add case insensitive string compare
2016-09-02 00:06:13 +01:00
Daniel Kolesa
17365642ef
actually safe string cmp
2016-08-18 00:35:21 +01:00
Daniel Kolesa
c7862243a8
avoid UB in string compare
2016-08-17 18:18:12 +01:00
Daniel Kolesa
7a11157f95
formatting
2016-08-03 16:50:06 +01:00
Daniel Kolesa
d259877fba
typo fix
2016-07-31 20:50:07 +01:00
Daniel Kolesa
8afffc1fb7
refactoring, style updates, various fixes
2016-07-31 20:40:25 +01:00
Daniel Kolesa
88241f5f9e
remove namespace
2016-07-08 19:48:11 +01:00
Daniel Kolesa
115da8be30
use lstat for consistent behavior
2016-07-07 19:46:53 +01:00
Daniel Kolesa
8b7fc0f791
don't alloc path twice
2016-07-07 17:06:57 +01:00
Daniel Kolesa
b02966fb9d
environment api for windows, and rename environ namespace to envvar because windows is retarded
2016-07-06 20:40:43 +02:00
Daniel Kolesa
dd35b0bf05
fix incorrect FindFirstFile logic on Windows
2016-07-06 19:51:39 +02:00
Daniel Kolesa
85d98780ce
windows build warning/error fixes
2016-07-06 19:31:21 +02:00
Daniel Kolesa
0a1b578fcd
ignore some template specializations for systems with no big char builtins
2016-07-06 19:10:17 +02:00
Daniel Kolesa
0c8c16a44a
windows fixes + stdin/stdout/stderr might be defined as macros
2016-07-06 17:05:32 +01:00
Daniel Kolesa
f5a7c19acc
fix invalid cast
2016-07-05 18:27:27 +01:00
Daniel Kolesa
b7a2322990
add nothrow constructible/assignable/destructible type traits (for when user code uses exceptions)
2016-07-03 01:39:13 +01:00
Daniel Kolesa
47ed1a700c
don't use classic style casts
2016-07-02 04:57:23 +01:00
Daniel Kolesa
85b7602654
fix directory stream on Linux as glibc's dirent.h doesn't put . and .. entries to the start
2016-06-28 19:52:37 +01:00
Daniel Kolesa
676f76acee
string element append fix and OS X support note
2016-06-27 19:18:31 +01:00
Daniel Kolesa
7912c24e3a
const syntax refactoring
2016-06-23 19:18:35 +01:00
Daniel Kolesa
430ca81bfd
pass compare func by reference in sort impl (don't copy it around)
2016-05-29 02:41:58 +01:00
Daniel Kolesa
46d8844a49
return fix
2016-05-24 01:30:11 +01:00
Daniel Kolesa
5189bab1af
simplify string operator+= for T
2016-05-22 15:31:11 +01:00
Daniel Kolesa
d9bd0f8380
restrict string operator+ (conflicts with range offset)
2016-05-21 15:36:14 +01:00
Daniel Kolesa
65954f614c
decay map/filter callbacks before storing them
2016-05-09 00:07:25 +01:00
Daniel Kolesa
a5c4b9d3ca
global concat op for strings
2016-05-07 17:25:40 +01:00
Daniel Kolesa
7561d40b14
missed inline
2016-05-04 00:50:52 +01:00
Daniel Kolesa
75e27a14b0
overload rvalue refs to const for tuple
2016-05-02 18:21:54 +01:00
Daniel Kolesa
34cb1f1fbd
forward the tuple to ensure correct get semantics
2016-05-01 00:53:48 +01:00
Daniel Kolesa
f46ffa53fd
forwarding join/zip
2016-05-01 00:34:00 +01:00
Daniel Kolesa
b16e72fa16
convert nearly all algos (except variadic ones) to use perfect forwarding
2016-04-30 19:21:50 +01:00
Daniel Kolesa
ca0dfcd8a4
fix return type
2016-04-30 18:27:53 +01:00
Daniel Kolesa
0f5ed68124
actually need to move things into the lambda or they die
2016-04-30 18:24:17 +01:00
Daniel Kolesa
5dfc54dad9
simplify map/filter
2016-04-30 17:58:37 +01:00
Daniel Kolesa
e33797e571
pipeable foldl/foldr func variant
2016-04-29 17:47:04 +01:00
Daniel Kolesa
fcd0616f4d
fix naming
2016-04-29 17:45:06 +01:00
Daniel Kolesa
551dc8bc15
return range from sort and make it pipeable
2016-04-29 17:34:46 +01:00
Daniel Kolesa
62fdbc74ad
add missing pipeable algorithms and suffix funcs that use comparators
2016-04-29 17:30:32 +01:00
Daniel Kolesa
ab22ba910a
remove mutable where unnecessary + capture join/zip by ref instead of copy
2016-04-27 18:42:51 +01:00
Daniel Kolesa
878476a397
use int for sdl1 mode and report size
2016-04-27 01:18:04 +01:00
Daniel Kolesa
c5a9d535f5
fixes
2016-04-27 01:11:03 +01:00
Daniel Kolesa
e51fe5a348
add an extensions directory and first extension, sdl rwops stream integration
2016-04-27 01:08:59 +01:00
Daniel Kolesa
288526e7db
capture by references more (the objects live long enough to be safe)
2016-04-27 00:29:55 +01:00
Daniel Kolesa
e7dd08d884
piping for nearly all algorithms
2016-04-26 22:25:46 +01:00
Daniel Kolesa
5604df9625
make core range funcs methods on InputRange + initial support for piping
2016-04-26 22:05:07 +01:00
Daniel Kolesa
2d399a2ed3
fix RangeValue for ZipRange
2016-03-30 20:41:59 +01:00
Daniel Kolesa
6c840ad830
implement zip and tuple ToString
2016-03-27 23:49:57 +01:00
Daniel Kolesa
f651940570
add initial implementation of range joiner (join any type-compatible ranges into one)
2016-03-27 21:06:00 +01:00
Daniel Kolesa
59551e0aee
fix the StreamMode enum
2016-03-26 17:26:37 +00:00
Daniel Kolesa
ce42683c99
default to read mode in filestreams
2016-03-26 15:19:00 +00:00
Daniel Kolesa
54789177e2
no need for a typedef
2016-03-24 21:52:16 +00:00
Daniel Kolesa
60a04937c6
string range optimizations
2016-03-23 22:32:30 +00:00
Daniel Kolesa
a31ddba522
range fixes
2016-03-23 22:27:46 +00:00
Daniel Kolesa
9de9d99d4d
fixes
2016-03-22 01:13:43 +00:00
Daniel Kolesa
5b4ea576b7
change to RemoveConst
2016-03-21 21:25:23 +00:00
Daniel Kolesa
e48642659d
generalize temp cstrings for any range type
2016-03-21 21:21:41 +00:00
Daniel Kolesa
4854242918
typo fix
2016-03-20 20:23:26 +00:00
Daniel Kolesa
6c4fd3d8ae
this doesn't actually happen
2016-03-19 20:23:46 +00:00
Daniel Kolesa
a63cf1edb1
add experimental api to turn unterminated string ranges to terminated c strings
2016-03-19 19:52:46 +00:00
Daniel Kolesa
40746de1c3
add environment funcs (environ.hh) and update test runner code (less verbose/cleaner)
2016-03-13 01:28:39 +00:00
Daniel Kolesa
b66c684add
add trailing newlines
2016-02-07 21:19:20 +00:00
Daniel Kolesa
dfc867bd48
remove unused file
2016-02-05 21:29:27 +00:00
Daniel Kolesa
3495d6ea2f
remove platform.hh include
2016-01-28 18:36:48 +00:00
Daniel Kolesa
0580638905
move windows.h include into its own header (to define LEAN_AND_MEAN and NOMINMAX in all places)
2016-01-27 19:35:11 +00:00
Daniel Kolesa
62d7836f32
header fixes
2016-01-26 19:01:27 +00:00
Daniel Kolesa
e5dc50b0dd
support hardware_concurrency static method like c++ std::thread (also replaces cpu_count_get)
2016-01-26 18:58:16 +00:00
Daniel Kolesa
5192ea4977
small cleanup
2016-01-24 16:59:44 +00:00
Daniel Kolesa
4b9faefa5c
convert locking/cond code to pthreads to get rid of awful c11 api
2016-01-24 15:33:15 +00:00
Daniel Kolesa
86170b75c4
convert thread.hh to phreads (c11 threads api is awful)
2016-01-24 15:22:51 +00:00
Daniel Kolesa
4eb03ad017
lock fixes
2016-01-23 22:38:30 +00:00
Daniel Kolesa
98eeb765fd
initial implementation of locking primitives and conditions
2016-01-23 22:16:10 +00:00
Daniel Kolesa
bf647c100e
re-add iter for arrays of const
2016-01-23 17:38:41 +00:00
Daniel Kolesa
46fb6ced30
support for extra args for thread constructor
2016-01-23 17:26:42 +00:00
Daniel Kolesa
b84eb137da
initial portable ostd::Thread interface (on top of C11 threads)
2016-01-23 16:54:27 +00:00
Daniel Kolesa
d1feaafb5e
change style for constants
2016-01-22 18:12:39 +00:00
Daniel Kolesa
eaaddb0d0b
redefine some stuff without macros
2016-01-22 18:10:13 +00:00
Daniel Kolesa
305d3e54f6
cleanups
2016-01-21 17:58:51 +00:00
Daniel Kolesa
5902299a1d
convert the remaining usage of Constant and all the remaining public traits
2016-01-20 19:05:11 +00:00
Daniel Kolesa
8a1671f6ea
convert most of the rest to template vars
2016-01-20 18:42:29 +00:00
Daniel Kolesa
7802efa1a1
use constexpr bool for IsTupleLike
2016-01-20 18:09:44 +00:00
Daniel Kolesa
2c4d6fee09
convert TupleSize to template var
2016-01-19 19:14:02 +00:00
Daniel Kolesa
29bf432800
remove bad file
2016-01-18 18:05:04 +00:00
Daniel Kolesa
bc0c3f7577
convert some stuff to variable templates
2016-01-16 18:45:55 +00:00
Daniel Kolesa
460cded195
add BoolConstant
2016-01-16 18:33:52 +00:00
Daniel Kolesa
9e4d475488
rename IntegralConstant to Constant
2016-01-16 18:31:58 +00:00
Daniel Kolesa
31a46ef07d
more trait cleanups
2016-01-14 21:16:42 +00:00
Daniel Kolesa
37059e505b
remove some unnecessary code
2016-01-14 19:32:22 +00:00
Daniel Kolesa
f578bd71f6
simplify range traits tests
2016-01-14 19:15:50 +00:00
Daniel Kolesa
8152173c39
convert more traits
2016-01-14 19:11:52 +00:00
Daniel Kolesa
abde607016
remove most IntegralConstant usages from type_traits
2016-01-14 19:03:22 +00:00
Daniel Kolesa
7d52a75348
convert some traits to cleaner syntax
2016-01-14 18:49:38 +00:00
Daniel Kolesa
1c5ba28f35
replace some traits with c++14 style nice definitions
2016-01-13 20:46:16 +00:00
Daniel Kolesa
41174195bb
drop static in constexpr template vars
2016-01-13 20:40:59 +00:00
Daniel Kolesa
818cbe376a
convert the remaining type_traits.hh checking traits to constexpr bools
2016-01-13 18:09:21 +00:00
Daniel Kolesa
a6744105dc
convert range checks to template vars
2016-01-13 17:42:37 +00:00
Daniel Kolesa
9b11c1d319
convert IsSame to template variable
2016-01-12 22:24:40 +00:00
Daniel Kolesa
7edf3e1d4a
more template var conversions
2016-01-12 22:09:40 +00:00
Daniel Kolesa
697b135157
remove unneeded forward decl
2016-01-12 21:56:17 +00:00
Daniel Kolesa
d53556d336
convert a part of type traits to template variables (reduces verbosity in a lot of places)
2016-01-12 21:45:26 +00:00
Daniel Kolesa
02e7ae76a2
add ostd::starts_with to string library
2015-12-31 16:36:41 +01:00
Daniel Kolesa
31d3182a4a
fix shadow warnings
2015-12-30 15:13:07 +01:00
Daniel Kolesa
b3a12884be
forgot endif
2015-09-30 19:18:09 +01:00
Daniel Kolesa
561b6d01fa
symbol visibility support in platform.hh
2015-09-30 18:49:30 +01:00
Daniel Kolesa
c9c4ca4f77
add ostd::cpu_count_get in platform.hh
2015-09-25 19:42:34 +01:00
Daniel Kolesa
0c09c709b5
add argparse.hh initial skeleton
2015-09-22 20:23:59 +01:00
Daniel Kolesa
0c26f0c94e
simple api to change dir
2015-09-14 01:31:31 +01:00
Daniel Kolesa
f78aac9040
fix multiple method definitions
2015-09-10 18:54:47 +01:00
Daniel Kolesa
d1912c4237
fix directory rewind on unix
2015-09-08 01:17:28 +01:00
Daniel Kolesa
9648d5e011
experimental complete win32 support in filesystem.hh
2015-09-08 01:03:56 +01:00
Daniel Kolesa
d163028054
directory stream optimization
2015-09-08 00:49:50 +01:00
Daniel Kolesa
80b6aa588b
empty() public on DirectoryStream
2015-09-07 19:34:55 +01:00
Daniel Kolesa
a31fbdbe32
cleanup
2015-09-06 17:39:09 +01:00
Daniel Kolesa
1c48de0ccd
try to get the dirent.h stuff right at last
2015-09-06 17:11:15 +01:00
Daniel Kolesa
c5fb814bb3
remove the owned stuff from filesystem module
2015-09-06 16:20:51 +01:00
Daniel Kolesa
60aba3a82b
some initial win32 bits for filesystem module
2015-09-06 16:09:03 +01:00
Daniel Kolesa
baaa1e790d
filesystem module enhancements
2015-09-05 03:35:07 +01:00
Daniel Kolesa
d0662f2b08
better type names
2015-09-04 18:57:14 +01:00
Daniel Kolesa
c33fb68d89
fix algorithm::find_last + filesystem module fixes
2015-09-04 18:46:28 +01:00
Daniel Kolesa
75a9f284a4
initial experimental filesystem API
2015-09-04 18:25:17 +01:00
Daniel Kolesa
d9120a0015
new predefined operations for input ranges (defined for all without need for custom impl)
2015-08-31 14:47:19 +01:00
Daniel Kolesa
eb3c273376
add algorithm::find_last
2015-08-16 11:35:06 -07:00
Daniel Kolesa
0a55b0326e
add algorithm::slice_until (slice1 range from the beginning until range2 not-inclusive)
2015-08-13 23:25:39 +01:00
Daniel Kolesa
1a6d95580f
add algorithm::find_one_of (finds the first occurence of any value in the second range in the first range, then returns the range)
2015-08-11 01:32:24 +01:00
Daniel Kolesa
0fae09907e
string fixes + add advance()
2015-08-07 03:12:00 +01:00
Daniel Kolesa
0be81997af
new iter utils for pointer ranges
2015-08-07 02:36:58 +01:00
Daniel Kolesa
44d2600067
fix warning when passing nullptr constant
2015-08-07 00:08:59 +01:00
Daniel Kolesa
661bd5244e
null checks
2015-08-06 23:57:40 +01:00
Daniel Kolesa
8ba91c12fe
string clear check
2015-08-05 21:58:06 +01:00
Daniel Kolesa
4f23017594
keyset: allow get_key to return by value (still use reference where possible)
2015-08-05 20:05:03 +01:00
Daniel Kolesa
50a8562d20
ensure correct ctor overload resolution on char/pointer range for two pointers vs pointer plus size when passed int (or similar)
2015-08-05 02:09:44 +01:00
Daniel Kolesa
da4c3a0947
add ostd::Keyset - an associative array that stores keys inside of their elements
2015-08-02 15:57:09 +01:00
Daniel Kolesa
9729ce1bbc
simplify and fix multimap/multiset emplace
2015-08-02 15:08:42 +01:00
Daniel Kolesa
770f5ea0f2
use the new functor as default cmp in hashtables
2015-08-02 14:58:49 +01:00
Daniel Kolesa
65fb75d8ab
add function object EqualWithCstr to consider char pointers strings
2015-08-02 14:56:10 +01:00
Daniel Kolesa
74b233d5d1
add Vector::advance
2015-08-01 20:25:02 +01:00
Daniel Kolesa
e89448af70
add vector push_n
2015-08-01 20:16:03 +01:00
Daniel Kolesa
ef5951577d
fix tuple (why did that compile?)
2015-08-01 18:34:53 +01:00
Daniel Kolesa
bcb5f64250
str fixes
2015-08-01 04:29:26 +01:00
Daniel Kolesa
49af758238
explicit overloads of operator= on string for ptr/array because c++ type system blows
2015-08-01 04:19:37 +01:00
Daniel Kolesa
bc2bd9ca3b
hashtable fixes
2015-08-01 04:11:03 +01:00
Daniel Kolesa
c66fa7c7bf
forgot inline
2015-08-01 03:08:11 +01:00
Daniel Kolesa
0ceada8629
allow default ctor on PointerRange
2015-07-29 01:37:22 +01:00
Daniel Kolesa
df4b169aa8
better range constraints
2015-07-28 02:40:24 +01:00
Daniel Kolesa
bf8be04b01
actual warning fix
2015-07-26 19:08:47 +01:00
Daniel Kolesa
3fbaedbfc2
prevent compiler warnings on 32bit (code is not reached, but compilers complain)
2015-07-26 18:57:23 +01:00
Daniel Kolesa
5cf1c9feff
more versions of vec operators
2015-07-26 15:26:52 +01:00
Daniel Kolesa
f96e74902a
more vector stuff
2015-07-26 15:18:41 +01:00
Daniel Kolesa
b4619085b7
basic vector operations
2015-07-26 15:05:12 +01:00
Daniel Kolesa
ea024ea80e
vecmath constructors and relational operators
2015-07-26 14:53:09 +01:00
Daniel Kolesa
431bfa4dc8
initial skeleton for octastd vector math lib
2015-07-26 04:03:13 +01:00
Daniel Kolesa
841000d4d8
better string append() and operator+= (easy ranged append)
2015-07-25 02:34:07 +01:00
Daniel Kolesa
6c28e6dd66
fixed typo
2015-07-25 02:07:51 +01:00
Daniel Kolesa
178e6d2ae2
remove AnyString
2015-07-25 01:35:36 +01:00
Daniel Kolesa
90bc301487
reliable and simple string relational operators that work on ConstCharRange
2015-07-24 19:43:39 +01:00
Daniel Kolesa
7ede73f4dc
sink based concat() (no allocation in-func)
2015-07-23 02:05:08 +01:00
Daniel Kolesa
287bdbd312
contiguous ranges provide the data() method to retrieve a pointer to the sequence
2015-07-23 01:32:22 +01:00
Daniel Kolesa
7fc4ce0a3a
new range category: ContiguousRange (guaranteed to be backed by contiguous memory)
2015-07-23 01:28:25 +01:00
Daniel Kolesa
0e0ba19ead
stricter to_format check
2015-07-23 00:48:32 +01:00
Daniel Kolesa
ad2d69e83d
use a sink for to_string methods on objects (no extra allocs)
2015-07-23 00:44:23 +01:00
Daniel Kolesa
9446470f3c
use ConstCharRange for concat separator
2015-07-22 21:10:04 +01:00
Daniel Kolesa
13ca140b63
string ctor for pointer and literal because c++ semantics suck
2015-07-22 21:01:02 +01:00
Daniel Kolesa
161ab5be85
cleaned up constructors/assign ops for string and vector
2015-07-22 20:51:12 +01:00
Daniel Kolesa
b9edc0c568
rewritten and simplified write(f/ln) on stream objects
2015-07-22 02:06:36 +01:00
Daniel Kolesa
debbddc8da
format cleanups (and add convenience method put_string to the to_format range)
2015-07-22 01:53:55 +01:00
Daniel Kolesa
b2d656e481
use ConstCharRange when formatting strings
2015-07-22 01:30:23 +01:00
Daniel Kolesa
5786fc5fb7
user defined literal for const char ranges
2015-07-22 00:13:44 +01:00
Daniel Kolesa
458e0b8b87
use ConstCharRange for streams
2015-07-21 22:30:53 +01:00
Daniel Kolesa
a84142474c
io.hh cleanup
2015-07-21 22:21:54 +01:00
Daniel Kolesa
7a2f8581d7
StringRange -> CharRange
2015-07-21 22:06:23 +01:00
Daniel Kolesa
f2082d17cd
use string ranges everywhere else in format
2015-07-21 22:03:57 +01:00
Daniel Kolesa
874f8a3c14
use string ranges in format
2015-07-21 21:45:04 +01:00
Daniel Kolesa
7a0237788f
ConstStringRange ToString specialization
2015-07-21 20:25:09 +01:00
Daniel Kolesa
aa9bdb3ec2
better StringRange from-string ctor (allows for non-const to const conv semantics)
2015-07-21 20:23:31 +01:00
Daniel Kolesa
5d36b5663c
StringRange - differentiate between arrays and pointer constructors
2015-07-21 20:19:27 +01:00
Daniel Kolesa
852ae9ea37
better hashtable erase
2015-07-21 02:11:53 +01:00
Daniel Kolesa
71f5df79ce
better multihash insertion strategy (make sure elements with equal keys always form a sequence in a bucket)
2015-07-21 01:37:02 +01:00
Daniel Kolesa
8e40fca1ce
hash fixes/cleanups and make at() return a pointer
2015-07-20 22:04:52 +01:00
Daniel Kolesa
56629ff358
bucket list cleanup
2015-07-20 21:56:56 +01:00
Daniel Kolesa
0421e7b3c8
use calls to bucket() to get hashes
2015-07-20 21:08:49 +01:00
Daniel Kolesa
0c297af0bd
hash chunk cache line boundary alignment optimization
2015-07-20 18:51:16 +01:00
Daniel Kolesa
cc0fccb8cf
use fnv-1a hashing instead of djb2
2015-07-20 02:20:35 +01:00
Daniel Kolesa
a048a5384c
use mem_hash for hashing strings
2015-07-20 02:15:12 +01:00
Daniel Kolesa
453b463ce6
optimize hashtable to use small ranges (but larger nodes)
2015-07-20 02:08:30 +01:00
Daniel Kolesa
3613af3daa
alloc an extra bucket ptr as trailing sentinel value (for later usage)
2015-07-20 00:50:31 +01:00
Daniel Kolesa
d7c789195a
string fixes
2015-07-18 17:01:11 +01:00
Daniel Kolesa
53e292cdb0
_s literal for strings
2015-07-18 01:02:13 +01:00
Daniel Kolesa
a6584020a3
signal.hh -> event.hh, Event -> Signal
2015-07-17 19:00:25 +01:00
Daniel Kolesa
e9cf0c67ed
more signal functionality
2015-07-16 20:49:12 +01:00
Daniel Kolesa
58cbe3873c
recycle signal slots
2015-07-16 19:21:51 +01:00
Daniel Kolesa
8327022c67
signal const correctness
2015-07-16 18:55:21 +01:00
Daniel Kolesa
b22baaf5fd
const for emit
2015-07-16 01:42:35 +01:00
Daniel Kolesa
b20e32a8b6
add Event::clear
2015-07-16 01:40:58 +01:00
Daniel Kolesa
01ebb0063c
add new signal API
2015-07-16 01:37:37 +01:00
Daniel Kolesa
267e14c1c2
Maybe fix
2015-07-15 22:03:51 +01:00
Daniel Kolesa
1c4f04757d
mv the octa directory too
2015-07-13 20:10:29 +01:00