diff --git a/include/continuable/detail/composition_remapping.hpp b/include/continuable/detail/composition_remapping.hpp index 31be52d..6d5f8be 100644 --- a/include/continuable/detail/composition_remapping.hpp +++ b/include/continuable/detail/composition_remapping.hpp @@ -117,7 +117,7 @@ struct result_relocator_mapper { void traverse(traversal::container_category_tag, Index* index, Result* result) { - traverse_one(traits::is_invocable{}, index, + traverse_one(traits::is_invocable{}, index, result); } diff --git a/include/continuable/detail/composition_seq.hpp b/include/continuable/detail/composition_seq.hpp index 43d07d1..a4d11e7 100644 --- a/include/continuable/detail/composition_seq.hpp +++ b/include/continuable/detail/composition_seq.hpp @@ -109,7 +109,8 @@ constexpr auto create_index_pack(Args&&... args) { struct index_relocator { template ::value>* = nullptr> + std::enable_if_t< + is_indexed_continuable>::value>* = nullptr> auto operator()(Index* index, Target* target) const noexcept { // Assign the address of the target to the indexed continuable index->target = target; @@ -147,8 +148,8 @@ public: explicit sequential_dispatch_visitor(Data&& data) : data_(std::move(data)) { // Assign the address of each result target to the corresponding // indexed continuable. - remapping::relocate_index_pack(index_relocator{}, &data.index, - &data.result); + remapping::relocate_index_pack(index_relocator{}, &data_.index, + &data_.result); } virtual ~sequential_dispatch_visitor() = default;