Christopher Kohlhoff
e2e2bfc006
Bump minimum gcc version for BOOST_ASIO_HAS_VARIABLE_TEMPLATES.
...
Require gcc 6 or later for C++14 variable templates, as gcc 5
has a bug when they are used as dependent names.
2020-07-09 23:18:06 +10:00
Christopher Kohlhoff
8a83ba633d
Replace identical helper structs with void_type.
2020-07-07 23:37:18 +10:00
Christopher Kohlhoff
b6b095455b
Use separate name as function overloading isn't needed here.
2020-07-07 23:36:03 +10:00
Christopher Kohlhoff
de0aeda0b0
Older compilers need executor destructors to be marked noexcept.
2020-07-06 23:53:55 +10:00
Christopher Kohlhoff
4d6573677c
Fix documentation of execution::can_schedule trait.
2020-07-06 23:53:55 +10:00
Christopher Kohlhoff
b1af304069
Fix documentation of execution::is_executor_of trait.
2020-07-06 23:53:55 +10:00
Christopher Kohlhoff
d497ba96c6
Rename the customisation point traits X_result_type to X_result.
...
For consistency with std::invoke_result, drop the _type suffix from all
traits that deduce the result type of a customisation point expression.
2020-07-06 23:33:14 +10:00
Christopher Kohlhoff
71941a6bb1
Add support for native I/O executor detection with any_executor.
2020-07-06 00:47:41 +10:00
Christopher Kohlhoff
f18d7f748b
Reduce async op memory usage for handlers without a custom executor.
2020-07-06 00:47:31 +10:00
Christopher Kohlhoff
b2ce3c73e0
Older MSVC needs an explicit move constructor.
2020-07-06 00:47:22 +10:00
Christopher Kohlhoff
881e6eea5e
Mark query, prefer, require, and require_concept as [[nodiscard]].
2020-07-06 00:47:06 +10:00
Christopher Kohlhoff
98107ffb09
Use the execution::execute() customisation point for any_executor's target.
2020-07-04 14:46:54 +10:00
Christopher Kohlhoff
5a69376da9
Add missing adapter support to execution::bulk_execute() customisation point.
2020-07-04 01:24:01 +10:00
Christopher Kohlhoff
614cdbf0c5
Fix adapter support in execution::execute() customisation point.
2020-07-04 01:23:20 +10:00
Christopher Kohlhoff
2e9621e8ba
Add missing member and non-member swap to any_executor.
2020-07-04 01:23:11 +10:00
Christopher Kohlhoff
9af6e05eb5
Add missing equality/inequality operators to any_executor.
2020-07-04 01:22:56 +10:00
Christopher Kohlhoff
8f755ac905
Add missing any_executor constructor/assignment overloads.
2020-07-03 14:45:46 +10:00
Christopher Kohlhoff
f1b1309d59
Initialise destination's target when copying/moving from an empty any_executor.
2020-07-03 14:45:04 +10:00
Christopher Kohlhoff
b86333cf14
Ensure co_spawn compiles when BOOST_ASIO_NO_TS_EXECUTORS is defined.
2020-07-03 11:53:24 +10:00
Christopher Kohlhoff
ff695a0376
Simplify overloads in any_executor's query() backend.
2020-07-02 20:12:55 +10:00
Christopher Kohlhoff
43ecf63e14
Fix BOOST_ASIO_NO_EXCEPTIONS support.
2020-07-02 20:12:55 +10:00
Christopher Kohlhoff
fde31241ba
Suppress conversion warning with MSVC.
2020-07-02 20:12:55 +10:00
Christopher Kohlhoff
af23cdc8e2
Fix compilation in MSVC's non-permissive mode.
2020-07-02 20:12:55 +10:00
Christopher Kohlhoff
b840adb353
Add bulk_execute() to thread_pool executor.
2020-07-02 00:24:34 +10:00
Christopher Kohlhoff
38514aca66
Add execution::bulk_execute customisation point object.
2020-07-02 00:23:04 +10:00
Christopher Kohlhoff
3a4f36b0ce
Add adapter for execution::blocking_t::always_t.
2020-07-02 00:21:24 +10:00
Christopher Kohlhoff
9a1f89d748
Add adapter for execution::blocking_adaptation_t::allowed_t.
2020-07-02 00:17:51 +10:00
Christopher Kohlhoff
9fb152fd88
Limit variadic expansion for use_future's std::tuple support.
2020-07-01 14:00:08 +10:00
Christopher Kohlhoff
2ef33b429a
Explicitly delete copy construction and assignment for derived socket classes.
2020-07-01 13:59:48 +10:00
Christopher Kohlhoff
cd1b1e2565
Add execution::context_t::polymorphic_query_result_type.
2020-07-01 13:59:22 +10:00
Christopher Kohlhoff
3c8097af00
Add execution::typed_sender concept and execution::is_typed_sender trait.
2020-07-01 13:58:58 +10:00
Christopher Kohlhoff
264772a351
Use correct allocator type in system_executor dispatch/post.
2020-06-30 22:39:08 +10:00
Christopher Kohlhoff
4b3d8d96b2
Add missing equality_comparable trait for strand<>.
2020-06-30 22:39:08 +10:00
Christopher Kohlhoff
07a35fea34
Add missing equality_comparable trait for execution::any_executor.
2020-06-30 22:39:08 +10:00
Christopher Kohlhoff
46cee4fb0a
Add missing equality_comparable trait for system_executor.
2020-06-30 22:39:08 +10:00
Christopher Kohlhoff
57b0b6f231
Add missing equality_comparable trait for io_context executors.
2020-06-30 22:39:08 +10:00
Christopher Kohlhoff
00248b6739
Add scheduler and sender support to thread_pool.
...
The thread_pool::basic_executor_type class template is used as the
implementation for both the scheduler and sender types.
2020-06-30 22:39:08 +10:00
Christopher Kohlhoff
89392d98ae
Make properties applicable to executors, senders, and schedulers.
2020-06-30 22:39:08 +10:00
Christopher Kohlhoff
46e166e999
Fix documentation for execution::prefer_only.
2020-06-30 22:39:08 +10:00
Christopher Kohlhoff
19c06f6931
Add execution::scheduler concept and execution::is_scheduler trait.
2020-06-30 22:39:08 +10:00
Christopher Kohlhoff
e93522cf35
Add execution::executor_index trait.
2020-06-30 22:38:09 +10:00
Christopher Kohlhoff
49a3e6c628
Add execution::executor_shape trait.
2020-06-30 22:38:09 +10:00
Christopher Kohlhoff
8081d7ee9d
Add execution::schedule() customisation point object.
2020-06-30 22:38:09 +10:00
Christopher Kohlhoff
75b2c02896
Add execution::execute() support for adapting senders.
2020-06-30 22:38:09 +10:00
Christopher Kohlhoff
76789c2324
Add execution::submit() customisation point object.
2020-06-30 22:38:09 +10:00
Christopher Kohlhoff
c27c6f2af8
Change execution::sender_traits to recognise executors as senders.
2020-06-30 22:38:09 +10:00
Christopher Kohlhoff
8437d73465
Add execution::sender_to concept and execution::is_sender_to trait.
2020-06-30 22:16:35 +10:00
Christopher Kohlhoff
7edcde3d97
Add execution::connect() customisation point object.
2020-06-30 22:15:35 +10:00
Christopher Kohlhoff
84bf100253
Add execution::receiver_invocation_error exception.
2020-06-30 22:09:54 +10:00
Christopher Kohlhoff
63d35468c0
Add execution::sender concepts and traits.
...
This change adds the concept:
* execution::sender
the traits:
* execution::sender_traits
and the tag type:
* execution::sender_base
It also adds the following traits that correspond to the concepts:
* execution::is_sender
2020-06-30 22:09:19 +10:00