[libcxx-commits] [libcxx] [libc++][complex] P2819R2: Add `tuple` protocol to `complex` (PR #79744)

Mark de Wever via libcxx-commits libcxx-commits at lists.llvm.org
Mon Feb 12 11:16:36 PST 2024


================
@@ -227,6 +227,31 @@ template<class T> complex<T> sqrt (const complex<T>&);
 template<class T> complex<T> tan (const complex<T>&);
 template<class T> complex<T> tanh (const complex<T>&);
 
+  // [complex.tuple], tuple interface
+  template<class T> struct tuple_size;                             // Since C++26
+  template<size_t I, class T> struct tuple_element;                // Since C++26
+  template<class T> struct tuple_size<complex<T>>;                 // Since C++26
+  template<size_t I, class T> struct tuple_element<I, complex<T>>; // Since C++26
+  template<size_t I, class T>
+    constexpr T& get(complex<T>&) noexcept;                        // Since C++26
+  template<size_t I, class T>
+    constexpr T&& get(complex<T>&&) noexcept;                      // Since C++26
+  template<size_t I, class T>
+    constexpr const T& get(const complex<T>&) noexcept;            // Since C++26
+  template<size_t I, class T>
+    constexpr const T&& get(const complex<T>&&) noexcept;          // Since C++26
----------------
mordante wrote:

Thanks for adding the missing literals!
nit:
Can you put `// Since C++26` in the same column as `// Since C++14`.

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


More information about the libcxx-commits mailing list