From f65623dd5a083c9a75126a2124464aa760dd66d3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Dietmar=20K=C3=BChl?=
+The design discussion of
+There could be a counter argument to defining a default for the
+
+Add default template arguments for tasktask describes defaults for
+the two template parameters T and Environment
+of task but these defaults are not reflected in the
+synopsis of [task.class].
+This is an oversight and should be fixed. The default for
+T should be void and the default for
+Environment should be env<> (the
+design paper used empty_env but this struct
+was replaced by the class template env by P3325r5).
+Environment template parameter: this type is used to
+determine various customizations of task, e.g., the
+allocator_type, the scheduler_type, and
+the stop_source_type. Leaving the type a required
+argument means that a future standard could choose a possibly better
+default than the types determined when the Environment
+doesn't define them. On the other hand, a future standard could
+provide a suitable alias with modified types under a different
+name and/or a different namespace. Based on the LEWG discussion
+on 2025-08-26 the direction is to add the default arguments.
+task for
+T = void and Environment = env<>
+in the synopsis of [task.class]:
+
+
+namespace std::execution {
+ template<class T = void, class Environment = env<>>
+ class task {
+ ...
+ };
+}
+
task describes defaults for
the two template parameters T and Environment
of task but these defaults are not reflected in the
-synopsis of [task.class].
+synopsis of T should be void and the default for
Environment should be env<> (the
design paper used empty_env but this struct
-was replaced by the class template env by P3325r5).
+was replaced by the class template env by There could be a counter argument to defining a default for the @@ -40,8 +39,7 @@ on 2025-08-26 the direction is to add the default arguments.
Add default template arguments for task for
T = void and Environment = env<>
-in the synopsis of [task.class]:
+in the synopsis of
namespace std::execution {
template<class T = void, class Environment = env<>>
From 96b9b60be0d5bfae00b8601a6b58b2cdbe8a790f Mon Sep 17 00:00:00 2001
From: Jonathan Wakely
Date: Mon, 1 Sep 2025 21:20:40 +0100
Subject: [PATCH 3/3] Update xml/issue4343.xml
---
xml/issue4343.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/xml/issue4343.xml b/xml/issue4343.xml
index 248999d520..0260ac7cdb 100644
--- a/xml/issue4343.xml
+++ b/xml/issue4343.xml
@@ -18,7 +18,7 @@ This is an oversight and should be fixed. The default for
T should be void and the default for
Environment should be env<> (the
design paper used empty_env but this struct
-was replaced by the class template env by ).
+was replaced by the class template env by ).
There could be a counter argument to defining a default for the