New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Simplify result_of and friends #1749
Conversation
…ressions Drop support for reference-wrappers as the object expression (LWG2336), as it considerably complicates the already complicated code for no perceived benefit (pointers would be enough)
…dable Make the return types of their invoke expressions explicit Replace nested function types with helper function objects (no spirals)
Reduce the number of overloads and use of SFINAE. Drop redundant overloads for known return types. Reimplement `invoke_r` to tolerate overloaded comma operators. Conflicts: hpx/lcos/local/detail/invoke_when_ready.hpp hpx/util/invoke.hpp
Reimplement `invoke_fused_r` to tolerate overloaded comma operators. Conflicts: hpx/lcos/local/detail/invoke_when_ready.hpp
@@ -81,13 +81,13 @@ namespace hpx { namespace lcos { namespace local | |||
template <typename Policy, typename Func, typename Futures> | |||
struct dataflow_frame //-V690 | |||
: hpx::lcos::detail::future_data< | |||
typename hpx::util::invoke_fused_result_of< | |||
typename hpx::util::detail::fused_result_of< |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why did fused_result_of move into the detail namespace while invoke_fused still resides in hpx::util?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Because decltype
support is required now, result traits and the TR1 protocol become obsolete.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ahh, makes sense.
LGTM. |
Simplify result_of and friends
Rework
result_of
,is_callable
,invoke
implementations for readability.