diff --git a/execution.bs b/execution.bs index fbd2dc8..e2e624e 100644 --- a/execution.bs +++ b/execution.bs @@ -5007,6 +5007,25 @@ enum class forward_progress_guarantee { [*Note:* The `transfer` algorithm is unique in that it ignores the execution domain of its predecessor, using only its destination scheduler to select a customization. *--end note*] + 11.
+        template<callable Fun>
+          requires is_nothrow_move_constructible_v<Fun>
+        struct emplace-construct { // exposition only
+          Fun fun; // exposition only
+          using type = call-result-t<Fun>;
+
+          constexpr operator type() && noexcept(nothrow-callable<Fun>) {
+            return std::move(fun)();
+          }
+
+          constexpr type operator()() && noexcept(nothrow-callable<Fun>) {
+            return std::move(fun)();
+          }
+        };
+        
+ + 1. `emplace-construct` is used to emplace + non-movable types into containers like `tuple`, `optional`, and `variant`. 11.
         template<class... T>