243 Commits

Author SHA1 Message Date
Denis Blank
cc83fd5251 Rearrange the internal headers 2018-11-18 18:46:15 +01:00
Denis Blank
2cfbdaf673 Implement a benchmark against boost::future 2018-11-18 17:46:25 +01:00
Denis Blank
2b4f31c121 Initial work on benchmarking 2018-11-18 17:46:24 +01:00
Denis Blank
7dbf22a2d2 Make it possible to remap the result from promisified expressions 2018-03-17 13:24:57 +01:00
Denis Blank
be6571091b Implement continuables as return types for coroutines
* Closes #4
2018-03-14 10:29:45 +01:00
Denis Blank
f091cbb079 Use a std::apply style unpack
* Some cleanup
2018-03-14 10:29:44 +01:00
Denis Blank
d30814c2ff Fix a MSVC C++latest warning regarding allocator traits 2018-03-12 11:21:34 +01:00
Denis Blank
a7cdb16370 Remove cxx_function from dep
* This is no longer needed
2018-03-12 10:54:00 +01:00
Denis Blank
05727b0ee6 Reduce the amount of instantiations tested inside the CI 2018-03-12 09:56:53 +01:00
Denis Blank
180380cfbc Move some experimental compilation tests to its own unit test 2018-03-12 09:36:50 +01:00
Denis Blank
7189068037 Also test MSVC with /std:c++latest 2018-03-12 09:36:15 +01:00
Denis Blank
b26e9b5289 Split the seq tests 2018-03-12 08:49:08 +01:00
Denis Blank
a3e995c0ce Improve order dependence for the coroutine detection 2018-03-12 07:24:04 +01:00
Denis Blank
b5571c5ee1 Convert the seq and all tests into typed tests
* Hopefully this fixes the GCC virtual memory errors
2018-03-12 06:55:51 +01:00
Denis Blank
c72d1afa8b Fix a MSVC test failure 2018-03-12 06:19:34 +01:00
Denis Blank
a95246d45c Attempt to fix the GCC and MSVC build 2018-03-09 11:49:00 +01:00
Denis Blank
de40af0927 Add cti::populate and make use of it in tests 2018-03-09 09:45:00 +01:00
Denis Blank
86c3815ae0 Make continuable_base non copyable by default
* Actually there is no reason that the call hierarchy is copyable
  when looking at the fact that two types just cause distraction
  and bad usage.
2018-03-09 08:51:33 +01:00
Denis Blank
7a00a5f1c2 Seems like move only values inside initializer lists aren't valid sometimes 2018-03-09 08:41:55 +01:00
Denis Blank
1ce251483c Add more remaining nested unit tests to the any strategy 2018-03-09 08:13:50 +01:00
Denis Blank
c4cb102795 Fix a bug in the pack traversal where the container content wasn't perfectly forwarded 2018-03-09 08:13:20 +01:00
Denis Blank
deb798118c Add unit tests for the nested seq and all compositions 2018-03-09 05:40:37 +01:00
Denis Blank
b50c2bf8a8 Fix non default constructible values in compositions
* Add a test case for the non default constructible case
2018-03-09 05:25:36 +01:00
Denis Blank
f43a730cbd Basic implementation of the shared unit tests between all and seq 2018-03-09 05:12:09 +01:00
Denis Blank
7f76c55350 Fix the unsigned mismatch again 2018-03-09 04:57:52 +01:00
Denis Blank
087047e26d Initial work on testing the new seq and all strategy 2018-03-09 04:54:11 +01:00
Denis Blank
54385b5654 Fix an unsigned mismatch 2018-03-09 04:47:49 +01:00
Denis Blank
1a947d5c59 Fix the flat variant implementation
* Add unit tests
2018-03-09 04:34:31 +01:00
Denis Blank
916ea3c04d Use the flat_variant for the expected implementation 2018-03-08 19:29:31 +01:00
Denis Blank
c66e9a8ee1 optional_variant -> flat_variant 2018-03-08 17:30:33 +01:00
Denis Blank
e78291669c Establish the basic functionality of the optional_variant 2018-03-08 17:26:33 +01:00
Denis Blank
22896a69af Attempt to fix the basic instantiation of variant 2018-03-08 15:40:38 +01:00
Denis Blank
d9622566e9 Address a MSVC compiler bug which prevents collapsing references in coroutines
* Closes #2
2018-03-06 23:14:55 +01:00
Denis Blank
12c23f15f8 Fix a defect unit test 2018-03-06 21:36:27 +01:00
Denis Blank
acc15b46ab Traits and util cleanup 2018-03-06 03:53:18 +01:00
Denis Blank
0dbcccdc9e Add documentation to when_any 2018-03-04 08:44:38 +01:00
Denis Blank
cdbc332287 Implement the new result deduction for when_any
* The logic requires now that all continuables yield the same
  types and amount of result objects.
2018-03-02 19:18:53 +01:00
Denis Blank
9891543b1f Enable and document the new when_all 2018-03-02 04:49:04 +01:00
Denis Blank
dd1b605d95 Revert 5dfe388f7f8156
* It turns out that this isn't needed anymore and just affects
  the compile time by now
* Additionally GCC can't handle this properly
2018-03-02 04:02:45 +01:00
Denis Blank
7602dfd50d Basic implementation of the all composition 2018-03-01 03:21:31 +01:00
Denis Blank
a1ee771059 Fix an issue when connecting void continuables 2018-02-28 02:43:57 +01:00
Denis Blank
663779f083 Add documentation to when_seq 2018-02-28 02:10:35 +01:00
Denis Blank
3c70024c0b Make it possible to apply when_seq to iterators 2018-02-28 01:21:27 +01:00
Denis Blank
17f454ceb6 Fix a remapping failure when nested tuples are involved 2018-02-28 00:32:40 +01:00
Denis Blank
6e1350086e More work on the hint calculation for all and seq compositions 2018-02-27 23:47:51 +01:00
Denis Blank
c4cdb3c3b0 Fix the mapping when empty spreads are involved 2018-02-27 23:46:03 +01:00
Denis Blank
a7d844d0dc Fix some permissive issues 2018-02-27 17:19:57 +01:00
Denis Blank
ba6c4cc905 More work on the sequential compositioning 2018-02-27 06:08:55 +01:00
Denis Blank
b1d7a76c8f Move the new remapping functionality to its own header 2018-02-27 02:19:08 +01:00
Denis Blank
89c3becbcf Fix some unit tests 2018-02-26 19:34:25 +01:00
Denis Blank
02fbad159c Add missing licenses to cmake files 2018-02-26 19:28:24 +01:00
Denis Blank
05b9223da8 Require make_continuable to be called with a valid signature 2018-02-26 19:02:20 +01:00
Denis Blank
331d642e5d Fix a build error in the result indexing 2018-02-26 18:33:26 +01:00
Denis Blank
786792f4f0 Add cti::promisify with an initial boost asio helper 2018-02-26 05:04:38 +01:00
Denis Blank
9c66b53f23 Some ideas of a promisify helper 2018-02-25 17:37:30 +01:00
Denis Blank
9be06f4bcc Some more work on seperating the indexer and relocator 2018-02-23 01:13:22 +01:00
Denis Blank
4632ff355c Add relocate_index_pack to assign the target address to indexed continuables 2018-02-21 08:19:47 +01:00
Denis Blank
8dbd3d058a More work on indexing continuables together with its result 2018-02-19 15:46:00 +01:00
Denis Blank
f81f0e649c Initial work on creating the result object 2018-02-19 04:55:02 +01:00
Denis Blank
8102c2d841 Some more ideas 2018-02-19 00:58:45 +01:00
Denis Blank
951155bc34 Make it possible to apply transformations through pipes 2018-02-10 05:12:38 +01:00
Denis Blank
e4ef3ccefb Some experiments 2018-02-10 04:51:11 +01:00
Denis Blank
5dfe388f7f Prioritize the mapper if it does accept container and tuple like elements 2018-02-10 04:45:09 +01:00
Denis Blank
20f586376f Some misc improvements 2018-02-10 04:04:43 +01:00
Denis Blank
7c0aa6e6ba Move the composition functions to it's own header 2018-02-10 03:30:52 +01:00
Denis Blank
fbd87787aa Add a unit test which was removed in the original version
* Because unfinished traversals weren't allowed there.
2018-02-10 03:13:18 +01:00
Denis Blank
36bd134120 Change the inclusion style of the test header 2018-02-10 03:05:39 +01:00
Denis Blank
7a96a2681f Execute the single tests only once 2018-02-10 03:00:57 +01:00
Denis Blank
d7d10e9448 Fix the remaining unit tests for async traversal 2018-02-10 02:50:24 +01:00
Denis Blank
64f91d8ce0 Remove the 42 in_place_tag workaround 2018-02-10 02:15:02 +01:00
Denis Blank
bac986a23f Convert the async traversal test to gtest 2018-02-10 01:56:50 +01:00
Denis Blank
f935d78c99 Partial conversion of the async traversal unit test 2018-02-10 01:41:14 +01:00
Denis Blank
04111c0bc3 More work on porting the async traversal 2018-02-10 01:13:01 +01:00
Denis Blank
73927516c6 Set the version to 3.0.0
* There wil be a header split for compositions
  thus the backward compatibility breaks
2018-02-09 04:16:45 +01:00
Denis Blank
5904ea06b4 Convert more tests into proper gtest cases 2018-02-09 03:57:12 +01:00
Denis Blank
a5640a5d35 Fix std::array remapping 2018-02-09 03:36:12 +01:00
Denis Blank
0982748ad6 Enable another test 2018-02-07 02:43:25 +01:00
Denis Blank
bc3e3c6473 Fix some warnings 2018-02-07 02:34:12 +01:00
Denis Blank
45f29c8d00 Enable a failing test 2018-02-07 02:28:49 +01:00
Denis Blank
6dc2b0d0b1 Make the tests pass 2018-02-07 02:15:09 +01:00
Denis Blank
a0a0619953 Fix some SFINAE failures in map_pack
* Make unpack capable of SFINAE
2018-02-07 01:57:22 +01:00
Denis Blank
230b3ec967 Some minor test improvements 2018-02-07 01:01:52 +01:00
Denis Blank
72974d402e Enable passing parts of the unit test 2018-02-06 03:30:24 +01:00
Denis Blank
78f1c0ae78 More work on the unit test 2018-02-06 03:21:44 +01:00
Denis Blank
752bee6ea4 Start to port the traversal unit tests 2018-02-06 00:44:51 +01:00
Denis Blank
6a8919c63d Add the public headers for both traversal strategies 2018-02-05 23:47:50 +01:00
Denis Blank
0d3a88c4a1 Take my GSoC code for nested pack traversal over
* See https://naios.github.io/gsoc2017 for details
2018-02-05 23:47:07 +01:00
Denis Blank
17a4e8a8da Remove the continuable-api header 2018-02-02 00:24:38 +01:00
Denis Blank
f4ee3ea0d1 Make continuable.hpp include all headers of the library
* Move the old continuable.hpp header into continuable-types.hpp
2018-01-30 00:14:47 +01:00
Denis Blank
032fc436b9 Fix an unused variable error 2018-01-29 00:20:38 +01:00
Denis Blank
5751152733 Add a memory leak regression test (detected by LSan) 2018-01-28 23:10:39 +01:00
Denis Blank
4c76a11f45 Fix a coroutine MSVC/Clang incompatibility 2018-01-28 22:39:53 +01:00
Denis Blank
6c209c876a Allows fail to accept plain continuables 2018-01-25 08:11:05 +01:00
Denis Blank
9286cfa8cc Feature detection placeholders 2018-01-24 23:05:23 +01:00
Denis Blank
db8c5b07c9 More work on the await clang build 2018-01-24 01:33:05 +01:00
Denis Blank
9b0ad832ff Add a missing include 2018-01-24 01:06:19 +01:00
Denis Blank
3626133f8e Happy new Year!
* Update license notices to 2018
2018-01-04 01:45:09 +01:00
Denis Blank
02965776e3 Additionally test co_await expressions with 1 or more args 2017-12-30 03:19:11 +01:00
Denis Blank
a85040b0c2 Basic skeleton for coroutine_traits 2017-12-28 05:26:29 +01:00
Denis Blank
5d95b5c3e3 Test that coroutines propagate thrown exceptions back to co_await 2017-12-28 04:16:13 +01:00