[libcxx-commits] [libcxx] [libcxx] Implement `std::constant_wrapper` (PR #191695)

Louis Dionne via libcxx-commits libcxx-commits at lists.llvm.org
Fri Apr 17 11:06:15 PDT 2026


================
@@ -195,6 +195,22 @@ template<class T1, class T2>
 template<class T1, class T2>
     constexpr const T1&& get(const pair<T2, T1>&&) noexcept; // C++14
 
+// [const.wrap.class], class template constant_wrapper
+template<class T>
+  struct cw-fixed-value;                                    // exposition only, since C++26
+
+template<cw-fixed-value X, class = typename decltype(X)::type>
+  struct constant_wrapper;                                  // since C++26
+
+template<class T>
+  concept constexpr-param =                                 // exposition only, since C++26
+    requires { typename constant_wrapper<T::value>; };
----------------
ldionne wrote:

I'm not sure whether we normally put exposition only classes in synopses anymore. Can you double-check and maintain consistency, whatever it is?

https://github.com/llvm/llvm-project/pull/191695


More information about the libcxx-commits mailing list