<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/libcxx/docs/FeatureTestMacroTable.rst, branch main</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/'/>
<entry>
<title>[libc++] Implement P2988R12: `std::optional&lt;T&amp;&gt;` (#155202)</title>
<updated>2025-11-12T03:00:08+00:00</updated>
<author>
<name>William Tran-Viet</name>
<email>wtranviet@proton.me</email>
</author>
<published>2025-11-12T03:00:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=389a23c538e33b30903b4e733f5d30f629199829'/>
<id>389a23c538e33b30903b4e733f5d30f629199829</id>
<content type='text'>
Resolves #148131

- Unlock `std::optional&lt;T&amp;&gt;` implementation
- Allow instantiations of `optional&lt;T(&amp;)(...)&gt;` and `optional&lt;T(&amp;)[]&gt;`
but disables `value_or()` and `optional::iterator` + all `iterator`
related functions
- Update documentation
- Update tests</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Resolves #148131

- Unlock `std::optional&lt;T&amp;&gt;` implementation
- Allow instantiations of `optional&lt;T(&amp;)(...)&gt;` and `optional&lt;T(&amp;)[]&gt;`
but disables `value_or()` and `optional::iterator` + all `iterator`
related functions
- Update documentation
- Update tests</pre>
</div>
</content>
</entry>
<entry>
<title>[libc++] P2641R4: Checking if a `union` alternative is active (`std::is_within_lifetime`) (#165243)</title>
<updated>2025-11-02T09:30:31+00:00</updated>
<author>
<name>Nikolas Klauser</name>
<email>nikolasklauser@berlin.de</email>
</author>
<published>2025-11-02T09:30:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=2527b071ba2e39fdd62eeb73b89318468595c316'/>
<id>2527b071ba2e39fdd62eeb73b89318468595c316</id>
<content type='text'>
&lt;https://wg21.link/P2641R4&gt;

Implements the C++26 function in `&lt;type_traits&gt;` [meta.const.eval] (and
the corresponding feature test macro `__cpp_lib_is_within_lifetime`)

```c++
template&lt;class T&gt;
  consteval bool is_within_lifetime(const T*) noexcept;
```

This is done with the `__builtin_is_within_lifetime` builtin added to
Clang 20 by #91895 / 2a07509c8d3c8b5b2c88e4f73dde0071bf506870. This is
not (currently) available with GCC.

This implementation has provisions for LWG4138
&lt;https://cplusplus.github.io/LWG/issue4138&gt; where it is ill-formed to
instantiate `is_within_lifetime&lt;T&gt;` with a function type `T`.

Closes #105381

Co-authored-by: Mital Ashok &lt;mital@mitalashok.co.uk&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
&lt;https://wg21.link/P2641R4&gt;

Implements the C++26 function in `&lt;type_traits&gt;` [meta.const.eval] (and
the corresponding feature test macro `__cpp_lib_is_within_lifetime`)

```c++
template&lt;class T&gt;
  consteval bool is_within_lifetime(const T*) noexcept;
```

This is done with the `__builtin_is_within_lifetime` builtin added to
Clang 20 by #91895 / 2a07509c8d3c8b5b2c88e4f73dde0071bf506870. This is
not (currently) available with GCC.

This implementation has provisions for LWG4138
&lt;https://cplusplus.github.io/LWG/issue4138&gt; where it is ill-formed to
instantiate `is_within_lifetime&lt;T&gt;` with a function type `T`.

Closes #105381

Co-authored-by: Mital Ashok &lt;mital@mitalashok.co.uk&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>[libc++] constexpr flat_multiset (#161016)</title>
<updated>2025-11-01T08:51:35+00:00</updated>
<author>
<name>Hui</name>
<email>hui.xie1990@gmail.com</email>
</author>
<published>2025-11-01T08:51:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=c07440b8879c61c1c388499278197ce6970f2472'/>
<id>c07440b8879c61c1c388499278197ce6970f2472</id>
<content type='text'>
Fixes https://github.com/llvm/llvm-project/issues/128676</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes https://github.com/llvm/llvm-project/issues/128676</pre>
</div>
</content>
</entry>
<entry>
<title>[libc++][atomic] P2835R7: Expose `std::atomic_ref`'s object address (#162236)</title>
<updated>2025-10-13T12:27:02+00:00</updated>
<author>
<name>Hristo Hristov</name>
<email>hghristov.rmm@gmail.com</email>
</author>
<published>2025-10-13T12:27:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=8a27b48122b9e11d62739cdbf28522ea497f2e31'/>
<id>8a27b48122b9e11d62739cdbf28522ea497f2e31</id>
<content type='text'>
Implements https://wg21.link/P2835R7

Closes #118377

# References

- https://wg21.link/atomics.ref.generic.general
- https://wg21.link/atomics.ref.int
- https://wg21.link/atomics.ref.float
- https://wg21.link/atomics.ref.pointer

---------

Co-authored-by: Hristo Hristov &lt;zingam@outlook.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Implements https://wg21.link/P2835R7

Closes #118377

# References

- https://wg21.link/atomics.ref.generic.general
- https://wg21.link/atomics.ref.int
- https://wg21.link/atomics.ref.float
- https://wg21.link/atomics.ref.pointer

---------

Co-authored-by: Hristo Hristov &lt;zingam@outlook.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>[libc++][ranges] P3060R3: Add `std::views::indices(n)` (#146823)</title>
<updated>2025-10-06T15:13:25+00:00</updated>
<author>
<name>Hristo Hristov</name>
<email>hghristov.rmm@gmail.com</email>
</author>
<published>2025-10-06T15:13:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=45c41247f82e5691425542de829d568cdc2fb580'/>
<id>45c41247f82e5691425542de829d568cdc2fb580</id>
<content type='text'>
Implements [P3060R3](https://wg21.link/P3060R3)

Closes #148175

# References

- https://github.com/cplusplus/draft/issues/7966
- https://github.com/cplusplus/draft/pull/8006
- https://wg21.link/customization.point.object
- https://wg21.link/range.iota.overview
- https://wg21.link/ranges.syn

---------

Co-authored-by: Hristo Hristov &lt;zingam@outlook.com&gt;
Co-authored-by: A. Jiang &lt;de34@live.cn&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Implements [P3060R3](https://wg21.link/P3060R3)

Closes #148175

# References

- https://github.com/cplusplus/draft/issues/7966
- https://github.com/cplusplus/draft/pull/8006
- https://wg21.link/customization.point.object
- https://wg21.link/range.iota.overview
- https://wg21.link/ranges.syn

---------

Co-authored-by: Hristo Hristov &lt;zingam@outlook.com&gt;
Co-authored-by: A. Jiang &lt;de34@live.cn&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>[libc++][string] P3044R2: sub-`string_view` from `string` (#147095)</title>
<updated>2025-09-25T00:08:15+00:00</updated>
<author>
<name>Hristo Hristov</name>
<email>hghristov.rmm@gmail.com</email>
</author>
<published>2025-09-25T00:08:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=804b46bb45d2c52c873f7b06c8f12cde6d6c0814'/>
<id>804b46bb45d2c52c873f7b06c8f12cde6d6c0814</id>
<content type='text'>
Implements [P3044R2](https://wg21.link/P3044R2)

Note: `substr.pass.cpp` is refactored to accommodate the test of
`basic_string_view`'s `subview` which is an alias of `substr` without
changing the test cases.

Closes #148140

# References

- https://github.com/cplusplus/draft/pull/7975
- https://wg21.link/string.substr
- https://wg21.link/string.view.ops

---------

Co-authored-by: Hristo Hristov &lt;zingam@outlook.com&gt;
Co-authored-by: Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Implements [P3044R2](https://wg21.link/P3044R2)

Note: `substr.pass.cpp` is refactored to accommodate the test of
`basic_string_view`'s `subview` which is an alias of `substr` without
changing the test cases.

Closes #148140

# References

- https://github.com/cplusplus/draft/pull/7975
- https://wg21.link/string.substr
- https://wg21.link/string.view.ops

---------

Co-authored-by: Hristo Hristov &lt;zingam@outlook.com&gt;
Co-authored-by: Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>[libc++] Implement P3168R2: Give optional range support (#149441)</title>
<updated>2025-08-18T15:04:45+00:00</updated>
<author>
<name>William Tran-Viet</name>
<email>wtranviet@proton.me</email>
</author>
<published>2025-08-18T15:04:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=1c5188692036c51123ae78e9208d5a375d28f74a'/>
<id>1c5188692036c51123ae78e9208d5a375d28f74a</id>
<content type='text'>
Resolves #105430

- Implement all required pieces of P3168R2
- Leverage existing `wrap_iter` and `bounded_iter` classes to implement
the `optional` regular and hardened iterator type, respectively
- Update documentation to match</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Resolves #105430

- Implement all required pieces of P3168R2
- Leverage existing `wrap_iter` and `bounded_iter` classes to implement
the `optional` regular and hardened iterator type, respectively
- Update documentation to match</pre>
</div>
</content>
</entry>
<entry>
<title>[libc++] Implement comparison operators for `tuple` added in C++23 (#148799)</title>
<updated>2025-08-01T15:53:33+00:00</updated>
<author>
<name>A. Jiang</name>
<email>de34@live.cn</email>
</author>
<published>2025-08-01T15:53:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=4a509f853fa4821ecdb0f6bc3b90ddd48794cc8c'/>
<id>4a509f853fa4821ecdb0f6bc3b90ddd48794cc8c</id>
<content type='text'>
And constrain the new `operator==` since C++26.

This patch implements parts of P2165R4, P2944R3, and a possibly improved
resolution of LWG3882. Currently, libstdc++ and MSVC STL constrain the
new overloads in the same way.

Also set feature-test macro `__cpp_lib_constrained_equality` and add
related release note, as P2944R3 will completed with this patch.

Fixes #136765
Fixes #136770
Fixes #105424</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
And constrain the new `operator==` since C++26.

This patch implements parts of P2165R4, P2944R3, and a possibly improved
resolution of LWG3882. Currently, libstdc++ and MSVC STL constrain the
new overloads in the same way.

Also set feature-test macro `__cpp_lib_constrained_equality` and add
related release note, as P2944R3 will completed with this patch.

Fixes #136765
Fixes #136770
Fixes #105424</pre>
</div>
</content>
</entry>
<entry>
<title>[libc++] P2655R3 common_reference_t of reference_wrapper Should Be a Reference Type (#141408)</title>
<updated>2025-07-06T16:32:59+00:00</updated>
<author>
<name>Hui</name>
<email>hui.xie1990@gmail.com</email>
</author>
<published>2025-07-06T16:32:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=0d1e5ab2fd9cf9c48d60176391624544d2e2242c'/>
<id>0d1e5ab2fd9cf9c48d60176391624544d2e2242c</id>
<content type='text'>
Fixes #105260

This patch applies the change as a DR to C++20. The rationale is that
the paper is more like a bug fix. It does not introduce new features, it
simply changes an existing behaviour (as a bug fix). MSVC STL DRed this
paper to C++20 as well.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes #105260

This patch applies the change as a DR to C++20. The rationale is that
the paper is more like a bug fix. It does not introduce new features, it
simply changes an existing behaviour (as a bug fix). MSVC STL DRed this
paper to C++20 as well.</pre>
</div>
</content>
</entry>
<entry>
<title>[libc++] Implement `views::join_with` (#65536)</title>
<updated>2025-06-21T09:54:50+00:00</updated>
<author>
<name>Jakub Mazurkiewicz</name>
<email>mazkuba3@gmail.com</email>
</author>
<published>2025-06-21T09:54:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=1bb2328fd3adf137cb32af4e3722a1b3e8a53a8e'/>
<id>1bb2328fd3adf137cb32af4e3722a1b3e8a53a8e</id>
<content type='text'>
* Implement "P2441R2 `views::join_with`" (https://wg21.link/P2441R2),
closes #105185
* Implement LWG4074 (https://wg21.link/LWG4074), closes #105346
* Complete implementation of "P2711R1 Making multi-param constructors of
views explicit" (https://wg21.link/P2711R1), closes #105252
* Complete implementation of "P2770R0 Stashing stashing iterators for
proper flattening" (https://wg21.link/P2770R0), closes #105250</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Implement "P2441R2 `views::join_with`" (https://wg21.link/P2441R2),
closes #105185
* Implement LWG4074 (https://wg21.link/LWG4074), closes #105346
* Complete implementation of "P2711R1 Making multi-param constructors of
views explicit" (https://wg21.link/P2711R1), closes #105252
* Complete implementation of "P2770R0 Stashing stashing iterators for
proper flattening" (https://wg21.link/P2770R0), closes #105250</pre>
</div>
</content>
</entry>
</feed>
