We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
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
chain_invoke
POC : https://godbolt.org/z/8noTGTvqa
namespace details::invocation_literals::eval { // detection/evaluation only constexpr auto operator>>(auto && args, auto && f) noexcept (std::is_nothrow_invocable_v<decltype(f), decltype(fwd(args))>) -> std::invoke_result_t<decltype(f), decltype(args)> requires (std::invocable<decltype(f), decltype(fwd(args))>) ; // for evaluation only, never defined } namespace details::invocation_literals { // do the job constexpr auto operator>>=(auto && args, auto && f) noexcept (std::is_nothrow_invocable_v<decltype(f), decltype(fwd(args))>) { return std::invoke(fwd(f), fwd(args)); } } namespace details::mp { template <typename Fs, typename Args> struct is_chain_nothrow_invocable { constexpr static bool value = []<std::size_t ... indexes>(std::index_sequence<indexes...>) { using namespace details::invocation_literals::eval; return noexcept((std::declval<Args>() >> ... >> std::get<indexes>(std::declval<Fs>()))); }(std::make_index_sequence<std::tuple_size_v<std::remove_cvref_t<Fs>>>{}); }; }
The text was updated successfully, but these errors were encountered:
Cleanup design, integrate csl::wf::invoke : https://godbolt.org/z/4fPcaafes
csl::wf::invoke
Sorry, something went wrong.
[project] wf : csl::wf::details::invoke_unfold_operators (#21)
a6d6255
Fixed with #26 -> #27
GuillaumeDua
No branches or pull requests
[wf] Remove recursivity for chain_invoke
POC : https://godbolt.org/z/8noTGTvqa
The text was updated successfully, but these errors were encountered: