diff --git a/include/continuable/continuable-base.hpp b/include/continuable/continuable-base.hpp index 4898a6d..9ccf7d5 100644 --- a/include/continuable/continuable-base.hpp +++ b/include/continuable/continuable-base.hpp @@ -157,10 +157,10 @@ public: /// \cond false continuable_base(continuable_base&&) = default; - continuable_base(continuable_base const&) = default; + continuable_base(continuable_base const&) = delete; continuable_base& operator=(continuable_base&&) = default; - continuable_base& operator=(continuable_base const&) = default; + continuable_base& operator=(continuable_base const&) = delete; /// \endcond /// The destructor automatically invokes the continuable_base diff --git a/include/continuable/continuable-types.hpp b/include/continuable/continuable-types.hpp index 1293780..b138b4d 100644 --- a/include/continuable/continuable-types.hpp +++ b/include/continuable/continuable-types.hpp @@ -40,16 +40,9 @@ namespace cti { // clang-format off namespace detail { -/// A function which isn't size adjusted and copyable -template -using function_adapter = fu2::function; /// A function which isn't size adjusted and move only template using unique_function_adapter = fu2::unique_function; -/// A function which is size adjusted and copyable -template -using function_adjustable = fu2::function_base; /// A function which is size adjusted and move only template using unique_function_adjustable = fu2::function_base`. -template -using trait_of = continuable_trait< - unique_function_adapter, - function_adjustable, - Args... ->; - template using unique_trait_of = continuable_trait< unique_function_adapter, @@ -72,21 +58,12 @@ using unique_trait_of = continuable_trait< >; } // namespace detail -/// Defines a copyable continuation type which uses the -/// function2 backend for type erasure. -/// -/// Usable like: `cti::continuable` -template -using continuable = typename detail::trait_of< - Args... ->::continuable; - /// Defines a non-copyable continuation type which uses the /// function2 backend for type erasure. /// -/// Usable like: `unique_continuable` +/// Usable like: `continuable` template -using unique_continuable = typename detail::unique_trait_of< +using continuable = typename detail::unique_trait_of< Args... >::continuable; diff --git a/test/unit-test/multi/test-continuable-erasure.cpp b/test/unit-test/multi/test-continuable-erasure.cpp index c74ce2c..d2fed1c 100644 --- a/test/unit-test/multi/test-continuable-erasure.cpp +++ b/test/unit-test/multi/test-continuable-erasure.cpp @@ -28,20 +28,20 @@ TYPED_TEST(single_dimension_tests, is_eraseable) { { - cti::unique_continuable erasure = + cti::continuable erasure = cti::make_continuable(supplier_of(0xDF)); EXPECT_ASYNC_RESULT(std::move(erasure), 0xDF); } { - cti::unique_continuable erasure = supplier_of(0xDF); + cti::continuable erasure = supplier_of(0xDF); EXPECT_ASYNC_RESULT(std::move(erasure), 0xDF); } { - cti::unique_continuable erasure = this->supply(0xDF); + cti::continuable erasure = this->supply(0xDF); EXPECT_ASYNC_RESULT(std::move(erasure), 0xDF); } @@ -49,11 +49,10 @@ TYPED_TEST(single_dimension_tests, is_eraseable) { TYPED_TEST(single_dimension_tests, is_callable) { - cti::unique_continuable erased = - [](cti::promise&& callback) { + cti::continuable erased = [](cti::promise&& callback) { - std::move(callback)(0xDF, 0xDD); - }; + std::move(callback)(0xDF, 0xDD); + }; EXPECT_ASYNC_RESULT(std::move(erased), 0xDF, 0xDD); } diff --git a/test/unit-test/test-continuable.hpp b/test/unit-test/test-continuable.hpp index b06dcda..edcf8db 100644 --- a/test/unit-test/test-continuable.hpp +++ b/test/unit-test/test-continuable.hpp @@ -166,13 +166,13 @@ using single_types = ::testing::Types< #if UNIT_TEST_STEP == 0 provide_copyable // provide_erasure, - // provide_erasure + // provide_erasure #elif UNIT_TEST_STEP == 1 // Some instantiations out commented for compilation speed reasons // provide_continuation_and_left, provide_continuation_and_left // provide_continuation_and_left>, - // provide_continuation_and_left>, + // provide_continuation_and_left>, // provide_continuation_and_right, // provide_continuation_and_right, // provide_continuation_and_left>