Skip to content

Commit 9fcbbc3

Browse files
authored
Merge branch 'main' into doxygen-fixes
2 parents 8187269 + c1476c1 commit 9fcbbc3

3 files changed

Lines changed: 17 additions & 17 deletions

File tree

include/nvexec/stream/sync_wait.cuh

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -195,15 +195,6 @@ namespace nvexec::_strm {
195195

196196
return std::move(std::get<1>(state.data_));
197197
}
198-
199-
#if STDEXEC_EDG()
200-
// For reporting better diagnostics with nvc++
201-
template <class _Sender, class _Error = stdexec::__sync_wait::__error_description_t<_Sender>>
202-
auto operator()(
203-
context_state_t context_state,
204-
_Sender&&,
205-
[[maybe_unused]] _Error __diagnostic = {}) const -> std::optional<std::tuple<int>> = delete;
206-
#endif
207198
};
208199
} // namespace _sync_wait
209200

include/stdexec/__detail/__continues_on.hpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919

2020
// include these after __execution_fwd.hpp
2121
#include "__basic_sender.hpp"
22-
#include "__concepts.hpp"
2322
#include "__env.hpp"
2423
#include "__meta.hpp"
2524
#include "__schedule_from.hpp"

include/stdexec/__detail/__senders.hpp

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,20 +30,28 @@
3030
#include "__transform_completion_signatures.hpp"
3131
#include "__transform_sender.hpp"
3232
#include "__type_traits.hpp"
33-
#include <type_traits>
3433

3534
namespace stdexec {
3635
/////////////////////////////////////////////////////////////////////////////
3736
// [execution.get_completion_signatures]
3837
namespace __detail {
3938
struct __dependent_completions { };
4039

40+
using dependent_completions = _ERROR_<__detail::__dependent_completions>;
41+
42+
template <class _Completions>
43+
concept __well_formed_completions_helper =
44+
__valid_completion_signatures<_Completions> || __same_as<_Completions, dependent_completions>;
45+
4146
template <class _Completions>
42-
concept __well_formed_sender = __valid_completion_signatures<_Completions>
43-
|| __same_as<_Completions, _ERROR_<__dependent_completions>>;
47+
inline constexpr bool __well_formed_completions_v =
48+
__well_formed_completions_helper<_Completions>;
49+
50+
template <class _Completions>
51+
concept __well_formed_completions = __well_formed_completions_v<_Completions>;
4452
} // namespace __detail
4553

46-
using dependent_completions = _ERROR_<__detail::__dependent_completions>;
54+
using __detail::dependent_completions;
4755

4856
namespace __sigs {
4957
template <class _Sender, class _Env>
@@ -334,7 +342,7 @@ namespace stdexec {
334342
/////////////////////////////////////////////////////////////////////////////
335343
// early sender type-checking
336344
template <class _Sender>
337-
concept __well_formed_sender = __detail::__well_formed_sender<
345+
concept __well_formed_sender = __detail::__well_formed_completions<
338346
__minvoke<__with_default_q<__completion_signatures_of_t, dependent_completions>, _Sender>>;
339347

340348
// Used to report a meaningful error message when the sender_in<Sndr, Env> concept check fails.
@@ -376,14 +384,16 @@ namespace stdexec {
376384
!__merror<_Completions>,
377385
"Trying to compute the sender's completion signatures resulted in an error. See the rest "
378386
"of the compiler diagnostic for clues. Look for the string \"_ERROR_\".");
379-
// MSVC needs more encouragement to print the type of the error.
380-
STDEXEC_MSVC(_Completions __what = 0;)
381387
} else {
382388
static_assert(
383389
__valid_completion_signatures<_Completions>,
384390
"The stdexec::sender_in<Sender, Environment> concept check has failed. This is likely a "
385391
"bug in the sender implementation.");
386392
}
393+
#if STDEXEC_MSVC() || STDEXEC_NVHPC()
394+
// MSVC and NVHPC need more encouragement to print the type of the error.
395+
_Completions __what = 0;
396+
#endif
387397
}
388398
}
389399
} // namespace stdexec

0 commit comments

Comments
 (0)