Skip to content
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

Merged
merged 12 commits into from Sep 24, 2015

Conversation

Projects
None yet
3 participants
@K-ballo
Copy link
Member

commented Sep 14, 2015

Rework result_of, is_callable, invoke implementations for readability.

K-ballo added some commits May 30, 2015

Reimplement SFINAE_friendly result_of by using minimal SFINAE for exp…
…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)
Attempt to make result_of implementation for member pointers more rea…
…dable

Make the return types of their invoke expressions explicit
Replace nested function types with helper function objects (no spirals)
Simplify invoke implementation
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
Make invoke_fused work with any tuple-like pack of arguments
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<

This comment has been minimized.

Copy link
@sithhell

sithhell Sep 18, 2015

Member

Why did fused_result_of move into the detail namespace while invoke_fused still resides in hpx::util?

This comment has been minimized.

Copy link
@K-ballo

K-ballo Sep 18, 2015

Author Member

Because decltype support is required now, result traits and the TR1 protocol become obsolete.

This comment has been minimized.

Copy link
@sithhell

sithhell Sep 23, 2015

Member

Ahh, makes sense.

@sithhell

This comment has been minimized.

Copy link
Member

commented Sep 23, 2015

LGTM.

hkaiser added a commit that referenced this pull request Sep 24, 2015

Merge pull request #1749 from STEllAR-GROUP/result_of-invoke
Simplify result_of and friends

@hkaiser hkaiser merged commit 0575f92 into master Sep 24, 2015

1 check passed

ci/circleci Your tests passed on CircleCI!
Details

@hkaiser hkaiser deleted the result_of-invoke branch Sep 24, 2015

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.