From 4b00f5ff8a20c5a0c4369c82bd1bf445e517d0e6 Mon Sep 17 00:00:00 2001 From: Denis Blank Date: Sat, 10 Feb 2018 01:15:33 +0100 Subject: [PATCH] Fix a missing typename build failure --- include/continuable/detail/traverse-async.hpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/include/continuable/detail/traverse-async.hpp b/include/continuable/detail/traverse-async.hpp index 88f0e40..71d58d3 100644 --- a/include/continuable/detail/traverse-async.hpp +++ b/include/continuable/detail/traverse-async.hpp @@ -530,22 +530,23 @@ auto apply_pack_transform_async(Visitor&& visitor, Args&&... args) { // Provide the frame and visitor type using types = async_traversal_types; + using frame_t = typename types::frame_t; + using visitor_t = typename types::visitor_t; // Check whether the visitor inherits enable_shared_from_this - static_assert( - std::is_base_of, - typename types::visitor_t>::value, - "The visitor must inherit std::enable_shared_from_this!"); + static_assert(std::is_base_of, + visitor_t>::value, + "The visitor must inherit std::enable_shared_from_this!"); // Check whether the visitor is virtual destructible - static_assert(std::has_virtual_destructor::value, + static_assert(std::has_virtual_destructor::value, "The visitor must have a virtual destructor!"); // Create the frame on the heap which stores the arguments // to traverse asynchronous. It persists until the // traversal frame isn't referenced anymore. - auto frame = std::make_shared(std::forward(visitor), - std::forward(args)...); + auto frame = std::make_shared(std::forward(visitor), + std::forward(args)...); // Create a static range for the top level tuple auto range = std::make_tuple(make_static_range(frame->head())); @@ -558,7 +559,7 @@ auto apply_pack_transform_async(Visitor&& visitor, Args&&... args) { // Cast the shared_ptr down to the given visitor type // for implementation invisibility - return std::static_pointer_cast(std::move(frame)); + return std::static_pointer_cast(std::move(frame)); } } // namespace traversal } // namespace detail