Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions include/exec/env.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@
#endif

namespace exec {
template <class... _TagValue>
using with_t = stdexec::__with<_TagValue...>;
template <class _Tag, class _Value = stdexec::__none_such>
using with_t = stdexec::__with<_Tag, _Value>;

namespace __detail {
struct __with_t {
Expand Down
4 changes: 2 additions & 2 deletions include/exec/task.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@
#include "scope.hpp"

STDEXEC_PRAGMA_PUSH()
STDEXEC_PRAGMA_IGNORE("-Wpragmas")
STDEXEC_PRAGMA_IGNORE("-Wundefined-inline")
STDEXEC_PRAGMA_IGNORE_GNU("-Wpragmas")
STDEXEC_PRAGMA_IGNORE_GNU("-Wundefined-inline")

namespace exec {
namespace __task {
Expand Down
27 changes: 24 additions & 3 deletions include/stdexec/__detail/__config.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,8 @@
#define STDEXEC_NVCC() 1
#elif defined(__NVCOMPILER)
#define STDEXEC_NVHPC() 1
#elif defined(__EDG__)
#define LEGATE_EDG() 1
#elif defined(__clang__)
#define STDEXEC_CLANG() 1
#elif defined(__GNUC__)
Expand All @@ -68,6 +70,9 @@
#ifndef STDEXEC_NVHPC
#define STDEXEC_NVHPC() 0
#endif
#ifndef STDEXEC_EDG
#define STDEXEC_EDG() 0
#endif
#ifndef STDEXEC_CLANG
#define STDEXEC_CLANG() 0
#endif
Expand All @@ -78,15 +83,31 @@
#define STDEXEC_MSVC() 0
#endif

#if STDEXEC_CLANG() || STDEXEC_GCC()
#define STDEXEC_STRINGIZE(_ARG) #_ARG

#if STDEXEC_NVCC()
#define STDEXEC_PRAGMA_PUSH() _Pragma("nv_diagnostic push")
#define STDEXEC_PRAGMA_POP() _Pragma("nv_diagnostic pop")
#define STDEXEC_PRAGMA_IGNORE_EDG(...) _Pragma(STDEXEC_STRINGIZE(nv_diag_suppress __VA_ARGS__))
#elif STDEXEC_NVHPC() || STDEXEC_EDG()
#define STDEXEC_PRAGMA_PUSH() \
_Pragma("diagnostic push") STDEXEC_PRAGMA_IGNORE_EDG(invalid_error_number)
#define STDEXEC_PRAGMA_POP() _Pragma("diagnostic pop")
#define STDEXEC_PRAGMA_IGNORE_EDG(...) _Pragma(STDEXEC_STRINGIZE(diag_suppress __VA_ARGS__))
#elif STDEXEC_CLANG() || STDEXEC_GCC()
#define STDEXEC_PRAGMA_PUSH() _Pragma("GCC diagnostic push")
#define STDEXEC_PRAGMA_POP() _Pragma("GCC diagnostic pop")
#define STDEXEC_PRAGMA_IGNORE(_ARG) _Pragma(STDEXEC_STRINGIZE(GCC diagnostic ignored _ARG))
#define STDEXEC_PRAGMA_IGNORE_GNU(_ARG) _Pragma(STDEXEC_STRINGIZE(GCC diagnostic ignored _ARG))
#else
#define STDEXEC_PRAGMA_PUSH()
#define STDEXEC_PRAGMA_POP()
#define STDEXEC_PRAGMA_IGNORE(_ARG)
#endif

#ifndef STDEXEC_PRAGMA_IGNORE_GNU
#define STDEXEC_PRAGMA_IGNORE_GNU(_ARG)
#endif
#ifndef STDEXEC_PRAGMA_IGNORE_EDG
#define STDEXEC_PRAGMA_IGNORE_EDG(_ARG)
#endif

#if !STDEXEC_MSVC() && defined(__has_builtin)
Expand Down
3 changes: 0 additions & 3 deletions include/stdexec/__detail/__execution_fwd.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -123,9 +123,6 @@ namespace stdexec {
using __get_completion_signatures::get_completion_signatures_t;
extern const get_completion_signatures_t get_completion_signatures;

template <class _Sender, class _Env>
using __completion_signatures_of_t = __call_result_t< get_completion_signatures_t, _Sender, _Env>;

//////////////////////////////////////////////////////////////////////////////////////////////////
namespace __connect {
struct connect_t;
Expand Down
9 changes: 9 additions & 0 deletions include/stdexec/__detail/__meta.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -351,6 +351,12 @@ namespace stdexec {
requires(sizeof...(_False) <= 1)
using __if_c = __minvoke<__if_::__<_Pred>, _True, _False...>;

template <class _Pred, class _True, class... _False>
using __minvoke_if = __minvoke<__if<_Pred, _True, _False...>>;

template <bool _Pred, class _True, class... _False>
using __minvoke_if_c = __minvoke<__if_c<_Pred, _True, _False...>>;

template <class _Tp>
struct __mconst {
template <class...>
Expand All @@ -372,6 +378,9 @@ namespace stdexec {
template <class _Fn, class _Default>
using __with_default = __mtry_catch<_Fn, __mconst<_Default>>;

template <template <class...> class _Fn, class _Default>
using __with_default_q = __mtry_catch_q<_Fn, __mconst<_Default>>;

inline constexpr __mstring __mbad_substitution =
"The specified meta-function could not be evaluated with the types provided."__csz;

Expand Down
Loading