Attempting to improve compiler error messages related to tag_invoke#6843
Attempting to improve compiler error messages related to tag_invoke#6843
Conversation
775733c to
f8cc4e5
Compare
| template <executor_any Executor, typename F, typename... Ts> | ||
| requires(std::invocable<F &&, Ts && ...>) | ||
| HPX_FORCEINLINE constexpr decltype(auto) operator()( | ||
| Executor&& exec, F&& f, Ts&&... ts) const |
Check notice
Code scanning / CodeQL
Unused local variable Note
| typename... Ts> | ||
| requires(std::invocable<F &&, shape_value_type_t<Shape>, Ts && ...>) | ||
| HPX_FORCEINLINE constexpr decltype(auto) operator()( | ||
| Executor&& exec, F&& f, Shape const& shape, Ts&&... ts) const |
Check notice
Code scanning / CodeQL
Unused static variable Note
| typename... Ts> | ||
| requires(std::invocable<F &&, shape_value_type_t<Shape>, Ts && ...>) | ||
| HPX_FORCEINLINE constexpr decltype(auto) operator()( | ||
| Executor&& exec, F&& f, Shape const& shape, Ts&&... ts) const |
Check notice
Code scanning / CodeQL
Unused local variable Note
|
retest lsu |
Performance test reportHPX PerformanceComparison
Info
Comparison
Info
Comparison
Info
Explanation of Symbols
|
- this is an experiment of how to best improve generated error messages if no appropriate tag_invoke overloads are being available Signed-off-by: Hartmut Kaiser <hartmut.kaiser@gmail.com>
Performance test reportHPX PerformanceComparison
Info
Comparison
Info
Comparison
Info
Explanation of Symbols
|
Coverage summary from CodacySee diff coverage on Codacy
Coverage variation details
Coverage variation is the difference between the coverage for the head and common ancestor commits of the pull request branch: Diff coverage details
Diff coverage is the percentage of lines that are covered by tests out of the coverable lines that the pull request added or modified: See your quality gate settings Change summary preferencesFootnotes
|
This is an experiment of how to best improve generated error messages if no appropriate
tag_invokeoverloads are being available.The main idea is to add explicit
operator()()overload(s) to the customization point object that concept-check all arguments. Theseoperator()()overloads simply forward to the base-class dispatch logic. This has the additional benefit of centralized argument concept-checking for alltag_invokeoverloads provided.If this proves to be applicable it opens up a path to fixing #6718.