q66
|
9ab5f03612
|
remove template arg
|
2017-03-23 17:52:14 +01:00 |
|
q66
|
a04db12d49
|
dispatch directly from start when using bscs
|
2017-03-23 15:25:23 +01:00 |
|
q66
|
023af03361
|
spawn/make_channel/yield without explicitly specifying scheduler
|
2017-03-23 11:35:23 +01:00 |
|
q66
|
147b8d8042
|
non-template spawn
|
2017-03-23 10:56:21 +01:00 |
|
q66
|
d73ad08e87
|
make channels outside of scheduler
|
2017-03-23 10:41:13 +01:00 |
|
q66
|
47145f0431
|
make the generic condvar public
|
2017-03-23 10:25:24 +01:00 |
|
q66
|
45e65d7ec7
|
unified single-type interface for channels
|
2017-03-23 03:17:09 +01:00 |
|
q66
|
0e24dcd1c4
|
nested coroutine example + use stackpool for dispatcher in bscs
|
2017-03-23 00:40:42 +01:00 |
|
q66
|
422a65cade
|
actually free coroutine stacks in dtor (more predictable and safer)
|
2017-03-22 22:38:48 +01:00 |
|
q66
|
1351ac14f6
|
fix lockups when a condvar signals while a task is being blocked
|
2017-03-22 20:01:37 +01:00 |
|
q66
|
66758fa1df
|
only put task to the waitlist after it's yielded
|
2017-03-22 19:00:36 +01:00 |
|
q66
|
cd5bc965bd
|
use csched_task for both coroutine schedulers
|
2017-03-22 18:44:06 +01:00 |
|
q66
|
18cfe5119f
|
track current task for coroutine scheduler separately
|
2017-03-22 18:23:29 +01:00 |
|
q66
|
bffc917f46
|
use a custom coroutine type for tasks
|
2017-03-22 17:58:34 +01:00 |
|
q66
|
2537d955d1
|
fixes, bigger stack for main task, take spawn funcs by value
|
2017-03-22 17:32:58 +01:00 |
|
q66
|
c1a1c4a1ac
|
fix issues with coroutine scheduler threads locking up
|
2017-03-21 19:49:06 +01:00 |
|
q66
|
307123fd35
|
revert the threadpool split (wasn't used in the end)
|
2017-03-21 00:29:38 +01:00 |
|
q66
|
c120f49634
|
implement an M:N thread/coroutine scheduler
|
2017-03-21 00:28:38 +01:00 |
|
q66
|
a080a17d00
|
separate thread pool into two structures
the internal one will also be used in parallel coroutine scheduler
|
2017-03-20 18:42:54 +01:00 |
|
q66
|
367d2b8b31
|
lightweight backing for thread_pool tasks (no shared_ptr)
|
2017-03-20 04:12:44 +01:00 |
|
q66
|
c1c68fb339
|
always use packaged_task for thread_pool push
|
2017-03-20 03:11:59 +01:00 |
|
q66
|
e50a86f339
|
it's not needed/desirable to hold onto the lock while notifying
|
2017-03-20 02:44:38 +01:00 |
|
q66
|
23652409f6
|
use lock_guard where possible
|
2017-03-20 02:35:50 +01:00 |
|
q66
|
e7855faeb1
|
add a way to reserve more stacks in stack_pool
|
2017-03-20 02:12:49 +01:00 |
|
q66
|
5e2891c806
|
make dispatcher a coroutine (that way main can do its thing)
|
2017-03-19 23:36:29 +01:00 |
|
q66
|
cef3c96bdb
|
use stack pool for coroutine scheduler
|
2017-03-19 20:02:09 +01:00 |
|
q66
|
d35e8b6341
|
channel api cleanup
|
2017-03-19 19:35:00 +01:00 |
|
q66
|
94d72b693e
|
remove split stack support (not portable or available on Windows)
|
2017-03-19 19:11:54 +01:00 |
|
q66
|
c123e98178
|
some universal funcs for working with schedulers
|
2017-03-19 18:12:08 +01:00 |
|
q66
|
9a9466e943
|
make channels copyable (referring to a shared state)
|
2017-03-19 16:23:00 +01:00 |
|
q66
|
9ad7fe76c4
|
add a simple coroutine scheduler that multiplexes tasks onto a single thread
|
2017-03-19 14:11:23 +01:00 |
|
q66
|
9f6d8da9db
|
allow return of value from scheduler start
|
2017-03-18 20:04:22 +01:00 |
|
q66
|
f07eefaf5a
|
thread_pool push result type fix
|
2017-03-18 20:02:03 +01:00 |
|
q66
|
795234c476
|
do the same with the returning version
|
2017-03-18 18:53:57 +01:00 |
|
q66
|
3462703b3a
|
only bind when args are passed
|
2017-03-18 18:50:23 +01:00 |
|
q66
|
35cda8872e
|
add a thread pool impl
|
2017-03-18 18:34:13 +01:00 |
|
q66
|
b4b7224dd0
|
initial skeleton for concurrency module
|
2017-03-18 01:05:10 +01:00 |
|
q66
|
0da22e777d
|
add a way to retrieve the current coroutine context
|
2017-03-17 03:04:15 +01:00 |
|
q66
|
06fbdc7419
|
remove coroutine_type, but keep public context
|
2017-03-17 02:46:24 +01:00 |
|
q66
|
959f319318
|
type inspection support on coroutines (with context as common base type)
|
2017-03-17 02:38:37 +01:00 |
|
q66
|
75e4ac1cb7
|
unnecessary template keyword
|
2017-03-17 02:16:06 +01:00 |
|
q66
|
043e38601f
|
instantiate yielder at point of func call
|
2017-03-17 01:14:56 +01:00 |
|
q66
|
f8b7275d5f
|
get rid of some index sequences
|
2017-03-17 01:11:30 +01:00 |
|
q66
|
a30e0ae639
|
move p_func into p_stor
|
2017-03-17 01:02:33 +01:00 |
|
q66
|
58a11a3415
|
make storage for args/result a standalone object
|
2017-03-17 00:48:11 +01:00 |
|
q66
|
23493c49af
|
do not decay; breaks const type inputs
|
2017-03-16 23:40:00 +01:00 |
|
q66
|
0a0fe27317
|
better generator yield/value storage semantics
|
2017-03-16 23:25:59 +01:00 |
|
q66
|
f4d3382617
|
allow custom condition variable types in channels
|
2017-03-16 01:16:03 +01:00 |
|
q66
|
ce155190e0
|
do not store the allocator/stack pointer directly, also call stack allocator dtor
|
2017-03-15 01:19:01 +01:00 |
|
q66
|
78d6a23ad3
|
align the stack pointer by 16 bytes
|
2017-03-15 00:59:26 +01:00 |
|
q66
|
bdb95567e4
|
implement a stack pool (allocates a chunk of stacks, gives out as requested)
|
2017-03-14 19:34:05 +01:00 |
|
q66
|
5e956ad0ce
|
remove include
|
2017-03-14 01:48:21 +01:00 |
|
q66
|
783057a3a3
|
add initial basic implementation for channels
|
2017-03-14 01:46:58 +01:00 |
|
q66
|
cf568c6f30
|
get rid of arg_wrapper, use lightweight storage for results
|
2017-03-13 20:18:35 +01:00 |
|
q66
|
64380bda53
|
use pointers to store coro args with perfect forwarding (guaranteed to be alive until resume return)
|
2017-03-13 19:32:56 +01:00 |
|
q66
|
c89953c11f
|
coro args/results don't need to be default constructible
|
2017-03-13 19:01:44 +01:00 |
|
q66
|
ea9ac2e5c6
|
add the same iterators to generator_range
|
2017-03-13 18:50:44 +01:00 |
|
q66
|
b63729641b
|
auto unwind in coroutine_context (no manual dtor), clean up generator
|
2017-03-13 17:29:48 +01:00 |
|
q66
|
c2b82771f9
|
hide internal coroutine_context funcs from the rest
|
2017-03-12 16:58:33 +01:00 |
|
q66
|
f1341b913c
|
unify context_call between coroutines and generators
|
2017-03-12 16:54:49 +01:00 |
|
q66
|
de45dd2e80
|
do stacksize clamp in ctor
|
2017-03-11 18:41:03 +01:00 |
|
q66
|
b2a71d773d
|
stack cleanups
|
2017-03-11 18:39:46 +01:00 |
|
q66
|
c07f7d5ddc
|
correct noexcept in coroutine.hh
|
2017-03-11 18:30:08 +01:00 |
|
q66
|
88e6fe3906
|
revert the stack freeing method (can be achieved via stack allocator)
|
2017-03-11 18:24:55 +01:00 |
|
q66
|
20f57dad9b
|
dealloc stacks in destructor (allows stack reuse)
|
2017-03-11 17:57:04 +01:00 |
|
q66
|
0185fa7c12
|
coroutine fixes/cleanups, remove INIT state (can be checked better)
|
2017-03-11 17:23:50 +01:00 |
|
q66
|
8c6e7d8bf7
|
add a generic way to get an yielder for a coroutine/generator
|
2017-03-11 14:51:55 +01:00 |
|
q66
|
64e699a2d2
|
implement more compares to make range halves conformant random/bidirectional iterators
|
2017-03-11 14:24:41 +01:00 |
|
q66
|
9c9221822a
|
directly iterable generators
|
2017-03-11 14:16:47 +01:00 |
|
q66
|
058efff580
|
coroutine cleanups
|
2017-03-11 03:53:41 +01:00 |
|
q66
|
2cf818a67b
|
make generators autostart
|
2017-03-11 02:17:59 +01:00 |
|
q66
|
935e1bc337
|
yielder revamp, separate generators without having to return
|
2017-03-11 02:12:43 +01:00 |
|
q66
|
b86df5c016
|
move over to standard filesystem module (from std::experimental or std)
|
2017-03-10 18:31:34 +01:00 |
|
q66
|
52da0ab7ae
|
windows fixes
|
2017-03-10 03:05:05 +01:00 |
|
q66
|
afd086b2a0
|
move some more bits into impl files
|
2017-03-09 19:21:01 +01:00 |
|
q66
|
5fafcdf954
|
move the stack alloc impl bits into a source file
|
2017-03-09 01:00:47 +01:00 |
|
q66
|
fb592f8c2c
|
shove the stack alloc stuff into detail:: (for potential reuse elsewhere)
|
2017-03-09 00:25:51 +01:00 |
|
q66
|
8e97f7fdfd
|
separate stack stuff into its own file, add support for segmented stacks on POSIX+gcc/clang
|
2017-03-08 18:11:39 +01:00 |
|
q66
|
81feac59d1
|
add separate protected and unprotected stack allocators, use unprotected by default
|
2017-03-08 02:16:24 +01:00 |
|
q66
|
48d039aea0
|
initial support for stack allocator objects
|
2017-03-08 02:06:56 +01:00 |
|
q66
|
7d0778cf0a
|
kill coroutine stack from entrypoint instead of destructor
|
2017-03-08 01:43:41 +01:00 |
|
q66
|
1d5c98f830
|
add valgrind support to coroutine code
|
2017-03-08 00:52:31 +01:00 |
|
q66
|
4987fd568d
|
windows typo fix
|
2017-03-07 22:55:05 +01:00 |
|
q66
|
c526f12b81
|
use malloc on systems without MAP_ANON/ANONYMOUS (they're not in POSIX)
|
2017-03-07 22:48:44 +01:00 |
|
q66
|
58206da3b4
|
use mmap to allocate stack on POSIX, VirtualAlloc on Windows
|
2017-03-07 22:39:17 +01:00 |
|
q66
|
661393f9c5
|
some initial stack alloc/free funcs
|
2017-03-07 21:53:16 +01:00 |
|
q66
|
3145ebe0c9
|
move coroutine context stuff to a separate file
|
2017-03-07 21:29:12 +01:00 |
|
q66
|
e97e70b427
|
constructor cleanup, const correctness, swap fixes, explicit bool, comments
|
2017-03-07 17:39:40 +01:00 |
|
q66
|
483ec9df3b
|
only initialize the context with a valid function
|
2017-03-07 02:19:25 +01:00 |
|
q66
|
573c001786
|
put coroutine_context in detail and inherit from it
|
2017-03-07 02:07:13 +01:00 |
|
q66
|
248acbeac5
|
use p_func to check finished status (no separate bool)
|
2017-03-07 01:25:56 +01:00 |
|
q66
|
7ba1f9265b
|
make value-returning no-argument coroutines iterable
|
2017-03-06 19:01:17 +01:00 |
|
q66
|
64d92743e4
|
only pass yield to coroutines, make them movable and swappable, improve examples
|
2017-03-06 18:38:50 +01:00 |
|
q66
|
9a194343f3
|
operator bool on coroutine should be inverse
|
2017-03-06 02:09:52 +01:00 |
|
q66
|
a4e17e22c7
|
fix coroutine + initial proof of concept generator (bad impl)
|
2017-03-06 00:47:15 +01:00 |
|
q66
|
1f946bff50
|
forwarding of coroutine args/results
|
2017-03-05 23:49:20 +01:00 |
|
q66
|
34a434ab53
|
move helpers to coro_base
|
2017-03-05 23:07:00 +01:00 |
|
q66
|
5c209872b5
|
fix narrowing
|
2017-03-05 21:56:41 +01:00 |
|
q66
|
ed514c28a6
|
specialize coroutines for zero args
|
2017-03-05 20:11:39 +01:00 |
|
q66
|
d369bb4b8a
|
use generic arg so we can construct coroutines from lambdas using =
|
2017-03-05 19:50:25 +01:00 |
|
q66
|
1bb2dffc63
|
return the arg directly from yield with single-arg coroutines
|
2017-03-05 19:45:26 +01:00 |
|
q66
|
2a842ef9da
|
reimplement coroutine using the new fcontext assembly
|
2017-03-05 16:48:44 +01:00 |
|
q66
|
8ecaa338bc
|
add initial coroutine module (slow ucontext_t, POSIX only, WiP)
|
2017-03-04 18:25:33 +01:00 |
|
q66
|
d33ca88d0a
|
fix bug with bool writing in format
|
2017-03-04 18:24:18 +01:00 |
|
q66
|
60cc9ee47e
|
rename standard streams to feel less keywordy
|
2017-03-04 15:43:53 +01:00 |
|
q66
|
3c33395fe6
|
stream write/writef cleanup
|
2017-03-02 22:52:09 +01:00 |
|
q66
|
d9a65da5bf
|
simplify write/writeln
|
2017-03-02 20:01:01 +01:00 |
|
q66
|
c93e818247
|
rvalue reference matching ostd::iter
|
2017-03-02 19:50:01 +01:00 |
|
q66
|
22a5640a59
|
revamped stream errors, add get_line on streams and stream line range
|
2017-03-02 18:12:00 +01:00 |
|
q66
|
f13f11f54e
|
format helper func with locale support
|
2017-03-01 19:19:46 +01:00 |
|
q66
|
15d6b0157b
|
remove detail::fmt_stream_range (not necessary anymore)
|
2017-02-28 17:22:29 +01:00 |
|
q66
|
740914d772
|
copy the item too
|
2017-02-27 17:55:05 +01:00 |
|
q66
|
e0574308a0
|
fully generic stream range (works on any type of stream)
|
2017-02-27 17:52:52 +01:00 |
|
q66
|
9f286f88f3
|
do not use digit grouping for pointers
|
2017-02-26 04:23:51 +01:00 |
|
q66
|
2f4f9dd440
|
prevent overflow when grouping is in place
|
2017-02-26 03:28:23 +01:00 |
|
q66
|
7164019e22
|
locale digit grouping support for integer format
|
2017-02-26 03:21:26 +01:00 |
|
q66
|
8be2e1fa56
|
basic locale awareness in streams (including writef/ln integration)
|
2017-02-26 02:06:02 +01:00 |
|
q66
|
db991ca03d
|
locale-aware format_spec
|
2017-02-26 01:04:33 +01:00 |
|
q66
|
98fb0e3e2e
|
fix escaping for default range print
|
2017-02-26 00:32:35 +01:00 |
|
q66
|
ccb0564bfc
|
clean up range writer
|
2017-02-26 00:30:07 +01:00 |
|
q66
|
bd5aa4795c
|
custom formatting is now done with format_traits
Allows definition for any type, even in any foreign namespace.
|
2017-02-25 19:17:08 +01:00 |
|
q66
|
e714e5f3fb
|
add new format flag @, make it escape always (never toggle)
|
2017-02-25 18:56:41 +01:00 |
|
q66
|
e90b0868aa
|
make the dash flag toggle current escaping mode in format
|
2017-02-25 17:33:18 +01:00 |
|
q66
|
262e691a4d
|
fix test runner
|
2017-02-25 14:56:51 +01:00 |
|
q66
|
81ccca0e52
|
ios based formatting of floats (no heap alloc and basic locale awareness)
|
2017-02-25 04:03:36 +01:00 |
|
q66
|
602aa7f182
|
clean up format
|
2017-02-22 03:32:03 +01:00 |
|
q66
|
2665c20351
|
support for precision in integer format
|
2017-02-21 18:22:25 +01:00 |
|
q66
|
a23a42da1f
|
remove ostd::to_string and ostd::concat (both replaced by more flexible format)
|
2017-02-20 20:43:38 +01:00 |
|
q66
|
1e1f6d63a2
|
support for formatting tuples in format strings via %<contents%>
|
2017-02-20 20:14:26 +01:00 |
|
q66
|
3f983afae5
|
support for printing iterable objects and tuples with %s
|
2017-02-20 19:36:55 +01:00 |
|
q66
|
3aa5db5b1c
|
do not implicitly to_string as a fallback in format
|
2017-02-20 18:31:08 +01:00 |
|
q66
|
5a76f29dea
|
revamped format module (more flexible, cleaner api)
|
2017-02-20 18:04:03 +01:00 |
|
q66
|
3a82495a4c
|
cleanups and optimizations
|
2017-02-19 18:46:43 +01:00 |
|
q66
|
78e6771148
|
bounds checking pointer/string ranges
|
2017-02-19 18:31:08 +01:00 |
|
q66
|
d6219046be
|
add range_put_all which can be overloaded with special optimizations
|
2017-02-19 18:14:09 +01:00 |
|
q66
|
e4dc237f4d
|
revamped output ranges and input range pop funcs
|
2017-02-19 16:45:06 +01:00 |
|
q66
|
2661ba91ae
|
add back appender helper funcs, add noop_output_range and counting_output_range
|
2017-02-18 19:05:03 +01:00 |
|
q66
|
c22f8e4b7a
|
remove ostd::min/max/clamp
|
2017-02-18 17:54:51 +01:00 |
|
q66
|
468ddd02e2
|
remove appender func (unnecessary)
|
2017-02-18 17:25:49 +01:00 |
|
q66
|
d155f90ceb
|
range fixes
|
2017-02-18 16:21:03 +01:00 |
|
q66
|
2ce3e6496a
|
clean up range tests
|
2017-02-18 15:23:57 +01:00 |
|
q66
|
755429f901
|
ravamped range traits
|
2017-02-18 15:05:42 +01:00 |
|
q66
|
f039fc7ed9
|
clean up some sfinae and proxy abuse
|
2017-02-18 14:31:50 +01:00 |
|
q66
|
0977b35fd2
|
cleaner array/pointer ctor for string ranges
|
2017-02-17 17:50:44 +01:00 |
|
q66
|
8e40841219
|
update to new style everywhere
|
2017-02-16 20:49:34 +01:00 |
|
q66
|
68c19a80fb
|
update naming style across range module
|
2017-02-16 20:02:55 +01:00 |
|
q66
|
3edcafd9a6
|
rename string range types to new style
|
2017-02-16 19:07:14 +01:00 |
|
q66
|
296345f18e
|
remove leftover template arg
|
2017-02-15 19:38:27 +01:00 |
|
q66
|
8190a0db5c
|
remove bad iter() overload
|
2017-02-15 19:35:28 +01:00 |
|
q66
|
c88660a854
|
standard way to retrieve range type from ranged_traits + minor fixes
|
2017-02-15 19:18:57 +01:00 |
|
q66
|
bd307bd52e
|
standard iter() for any std container type without ranged_traits
|
2017-02-14 18:32:51 +01:00 |
|
q66
|
67cbcb71eb
|
move initializer_list iter/citer to range.hh
|
2017-02-14 17:44:24 +01:00 |
|
q66
|
6b3707c0dc
|
remove PointerRange, IteratorRange completely replaces it
|
2017-02-14 17:39:03 +01:00 |
|
q66
|
08e980cd0a
|
start cleaning up the range system for nicer syntax
|
2017-02-13 23:33:52 +01:00 |
|
q66
|
21da5ec3d1
|
make the pipe op a member to make it to work automagically on user ranges
|
2017-02-13 21:13:10 +01:00 |
|
q66
|
6ba3b93018
|
cleaner pipe operator definition for ranges
|
2017-02-13 20:43:23 +01:00 |
|
q66
|
fd6a47c223
|
re-add zero-argument format impl and fix char_traits usage for const char ranges
|
2017-02-12 23:02:49 +01:00 |
|
q66
|
33bab6eb72
|
fix wrong return type
|
2017-02-12 22:51:43 +01:00 |
|
q66
|
667b2d50ea
|
use size_t for format results
|
2017-02-11 01:28:14 +01:00 |
|
q66
|
dc640d2c1e
|
no need for the other format_impl overload
|
2017-02-11 01:11:22 +01:00 |
|
q66
|
13477db869
|
add a format() overload to format a single spec without a format string + use
|
2017-02-11 00:18:41 +01:00 |
|
q66
|
d56a233120
|
partial cleanup of format module, better error handling
|
2017-02-10 23:49:00 +01:00 |
|
q66
|
9ab2093ed4
|
clean up join range pop/front
|
2017-02-10 21:06:08 +01:00 |
|
q66
|
2e773b3849
|
clean up join/zip ranges with c++17 fold expressions
|
2017-02-10 20:26:13 +01:00 |
|
q66
|
d06637eac6
|
actually use write_bytes directly
|
2017-02-10 17:48:19 +01:00 |
|
q66
|
922f19b776
|
make write(x) equivalent to write("%s", x)
|
2017-02-10 17:44:06 +01:00 |
|
q66
|
e1f5cc477f
|
extend IteratorRange to handle pointers as special case
|
2017-02-09 23:38:11 +01:00 |
|
q66
|
052fa58be4
|
clean up pointer range constructor
|
2017-02-09 22:55:17 +01:00 |
|
q66
|
946cf9d3fe
|
use char_traits in string range types
|
2017-02-09 21:39:35 +01:00 |
|
q66
|
2d5c4cab3f
|
clean up pointer/string ranges
|
2017-02-09 21:27:20 +01:00 |
|
q66
|
c5dd6bb8c3
|
remove obsolete type traits
|
2017-02-09 20:56:15 +01:00 |
|
q66
|
ea6d3d4bbf
|
clean up IteratorRange, use unsigned variant of difference for size
|
2017-02-09 20:13:52 +01:00 |
|
q66
|
463c7275d5
|
use ranged_traits specialization for static arrays
|
2017-02-09 20:07:10 +01:00 |
|
q66
|
79809a610b
|
remove functional.hh
|
2017-02-08 01:06:50 +01:00 |
|
q66
|
efa103c362
|
consistent error msg
|
2017-02-01 22:42:18 +01:00 |
|
q66
|
9e87d372de
|
allow constructing unordered_maps from any 2-tuple range
|
2017-02-01 22:38:25 +01:00 |
|
q66
|
407d4a524f
|
forgot to actually use the new template params
|
2017-02-01 20:58:54 +01:00 |
|
q66
|
0842a24cd3
|
complete template param support for all ranged make_ funcs and ranged_traits
|
2017-02-01 20:56:29 +01:00 |
|
q66
|
84f01c1286
|
remove memory.hh
|
2017-02-01 20:19:14 +01:00 |
|
q66
|
3e683a2436
|
remove silly intermediate ranges for writef, print directly to stream
|
2017-02-01 19:30:15 +01:00 |
|
q66
|
077835e4b6
|
range system fixes, add iterator types to RangeHalf, optimize make_vector(R)
|
2017-02-01 18:29:42 +01:00 |
|
q66
|
e0072773e1
|
remove custom hashtable; no longer necessary
|
2017-01-31 19:31:55 +01:00 |
|
q66
|
1f83e8c1b0
|
cleaner range passing in second version of make_CONTAINER
|
2017-01-31 19:17:46 +01:00 |
|
q66
|
fbdaf77b62
|
std::unordered_map initial range support (no extra template args yet)
|
2017-01-31 19:11:38 +01:00 |
|
q66
|
6ec72a6ecd
|
add IteratorRange to make a range out of any two iterators
|
2017-01-30 22:07:12 +01:00 |
|
q66
|
62b0c2ecf7
|
hash operator() needs to be const
|
2017-01-30 19:31:24 +01:00 |
|
q66
|
1abf3bb3ad
|
remove Maybe (use optional instead)
|
2017-01-30 19:27:25 +01:00 |
|
q66
|
0ee0d3231c
|
use standard types
|
2017-01-30 19:23:12 +01:00 |
|
q66
|
2884f4b47b
|
use size_t and ptrdiff_t
|
2017-01-30 19:11:49 +01:00 |
|
q66
|
1db7529ad9
|
remove custom hashing
|
2017-01-30 18:56:38 +01:00 |
|
q66
|
343c684820
|
initial proper string integration
|
2017-01-30 01:16:29 +01:00 |
|
q66
|
632147c5fb
|
bump compiler
|
2017-01-29 21:22:40 +01:00 |
|
q66
|
58a361e6e0
|
remove ostd::Function after all (never supported allocators properly anyway)
|
2017-01-29 18:38:37 +01:00 |
|
q66
|
2c7f98f57e
|
use standard swap
|
2017-01-29 15:56:02 +01:00 |
|
q66
|
a8f7122d45
|
use standard declval
|
2017-01-29 15:29:11 +01:00 |
|
q66
|
a41299505c
|
use unique_ptr
|
2017-01-29 15:16:13 +01:00 |
|
q66
|
71515c5383
|
actually keep our own function because libstdc++'s has no allocator support
|
2017-01-28 23:00:05 +01:00 |
|
q66
|
780f7e5b21
|
use standard function
|
2017-01-28 22:46:48 +01:00 |
|
q66
|
c751275d83
|
remove remains of tuple headers
|
2017-01-28 19:39:50 +01:00 |
|
q66
|
c8c24300ee
|
fully use standard tuples
|
2017-01-28 19:06:52 +01:00 |
|