<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/source/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in optional</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>f69585235ec85d54e0f3fc41b2d5700430907f99 - [libc++] Put _LIBCPP_NODEBUG on all internal aliases (#118710)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/optional#f69585235ec85d54e0f3fc41b2d5700430907f99</link>
        <description>[libc++] Put _LIBCPP_NODEBUG on all internal aliases (#118710)This significantly reduces the amount of debug information generatedfor codebases using libc++, without hurting the debugging experience.

            List of files:
            /llvm-project/libcxx/include/optional</description>
        <pubDate>Wed, 08 Jan 2025 16:12:59 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<item>
        <title>b9a2658a3e8bd13b0f9e7a8a440832a95b377216 - [libc++][C++03] Use `__cxx03/` headers in C++03 mode (#109002)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/optional#b9a2658a3e8bd13b0f9e7a8a440832a95b377216</link>
        <description>[libc++][C++03] Use `__cxx03/` headers in C++03 mode (#109002)This patch implements the forwarding to frozen C++03 headers asdiscussed inhttps://discourse.llvm.org/t/rfc-freezing-c-03-headers-in-libc. In theRFC, we initially proposed selecting the right headers from the Clangdriver, however consensus seemed to steer towards handling this in thelibrary itself. This patch implements that direction.At a high level, the changes basically amount to making each publicheader look like this:```// inside &lt;vector&gt;#ifdef _LIBCPP_CXX03_LANG#  include &lt;__cxx03/vector&gt;#else  // normal &lt;vector&gt; content#endif```In most cases, public headers are simple umbrella headers so there isn&apos;tmuch code in the #else branch. In other cases, the #else branch containsthe actual implementation of the header.

            List of files:
            /llvm-project/libcxx/include/optional</description>
        <pubDate>Sat, 21 Dec 2024 12:01:48 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<item>
        <title>59890c13343af9e308281b3c76bac425087f4f8a - [libc++] Granularize &lt;new&gt; includes (#119964)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/optional#59890c13343af9e308281b3c76bac425087f4f8a</link>
        <description>[libc++] Granularize &lt;new&gt; includes (#119964)

            List of files:
            /llvm-project/libcxx/include/optional</description>
        <pubDate>Tue, 17 Dec 2024 10:29:16 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<item>
        <title>c166a9c713ec86b86f1f178a5133bc128fd0a610 - [libc++] Add #if 0 block to all the top-level headers (#119234)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/optional#c166a9c713ec86b86f1f178a5133bc128fd0a610</link>
        <description>[libc++] Add #if 0 block to all the top-level headers (#119234)Including The frozen C++03 headers results in a lot of formattingchanges in the main headers, so this splits these changes into aseparate commit instead.This is part ofhttps://discourse.llvm.org/t/rfc-freezing-c-03-headers-in-libc.

            List of files:
            /llvm-project/libcxx/include/optional</description>
        <pubDate>Tue, 10 Dec 2024 15:02:12 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<item>
        <title>de87dda2da7febb66bdbaff8328632b1db6c88b1 - [libc++][NFC] Use more appropriate type traits for a few cases (#114025)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/optional#de87dda2da7febb66bdbaff8328632b1db6c88b1</link>
        <description>[libc++][NFC] Use more appropriate type traits for a few cases (#114025)

            List of files:
            /llvm-project/libcxx/include/optional</description>
        <pubDate>Mon, 04 Nov 2024 17:58:49 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<item>
        <title>ba87515fea90b5d55836a8e3be63a7e683ce299d - [libc++][RFC] Always define internal feature test macros (#89178)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/optional#ba87515fea90b5d55836a8e3be63a7e683ce299d</link>
        <description>[libc++][RFC] Always define internal feature test macros (#89178)Currently, the library-internal feature test macros are only defined ifthe feature is not available, and always have the prefix`_LIBCPP_HAS_NO_`. This patch changes that, so that they are alwaysdefined and have the prefix `_LIBCPP_HAS_` instead. This changes thecanonical use of these macros to `#if _LIBCPP_HAS_FEATURE`, which meansthat using an undefined macro (e.g. due to a missing include) isdiagnosed now. While this is rather unlikely currently, a similar changein `&lt;__configuration/availability.h&gt;` caught a few bugs. This alsoimproves readability, since it removes the double-negation of `#ifndef_LIBCPP_HAS_NO_FEATURE`.The current patch only touches the macros defined in `&lt;__config&gt;`. Ifpeople are happy with this approach, I&apos;ll make a follow-up PR to alsochange the macros defined in `&lt;__config_site&gt;`.

            List of files:
            /llvm-project/libcxx/include/optional</description>
        <pubDate>Sat, 12 Oct 2024 07:49:52 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<item>
        <title>19c6958d24acf5beaba1946ad3e1e5fc538e3a2d - [libc++] Re-apply LWG3870: Remove `voidify` (#110944)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/optional#19c6958d24acf5beaba1946ad3e1e5fc538e3a2d</link>
        <description>[libc++] Re-apply LWG3870: Remove `voidify` (#110944)This reverts commit f3d58f4161b86a479f68acb453e9622911c688a0.Relands #110355.

            List of files:
            /llvm-project/libcxx/include/optional</description>
        <pubDate>Thu, 03 Oct 2024 12:28:26 +0000</pubDate>
        <dc:creator>A. Jiang &lt;de34@live.cn&gt;</dc:creator>
    </item>
<item>
        <title>f3d58f4161b86a479f68acb453e9622911c688a0 - Revert &quot;[libc++] LWG3870: Remove `voidify` (#110355)&quot; (#110587)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/optional#f3d58f4161b86a479f68acb453e9622911c688a0</link>
        <description>Revert &quot;[libc++] LWG3870: Remove `voidify` (#110355)&quot; (#110587)This reverts commit 78f9a8b82d772ff04a12ef95f2c9d31ee8f3e409.This caused the LLDB test `TestDataFormatterGenericOptional.py` to fail, and we needa bit more time to look into it.

            List of files:
            /llvm-project/libcxx/include/optional</description>
        <pubDate>Tue, 01 Oct 2024 12:57:03 +0000</pubDate>
        <dc:creator>Michael Buch &lt;michaelbuch12@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>78f9a8b82d772ff04a12ef95f2c9d31ee8f3e409 - [libc++] LWG3870: Remove `voidify` (#110355)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/optional#78f9a8b82d772ff04a12ef95f2c9d31ee8f3e409</link>
        <description>[libc++] LWG3870: Remove `voidify` (#110355)Instead of changing the cast sequence to implicit conversion in_`voidify`_, I think it is better to totally remove `__voidify` and use`static_cast` to `void*`, which has equivalent effects.Test coverage for const iterators are removed.Now most affected algorithms are underconstrained, for which I submitted[LWG3888](https://cplusplus.github.io/LWG/issue3888). I&apos;m not surewhether we should speculatively implement it at this moment, and thushaven&apos;t added any `*.verify.cpp`.In some control block types and `optional`, the stored objects arechanged to have cv-unqualified type.Fixes #105119.

            List of files:
            /llvm-project/libcxx/include/optional</description>
        <pubDate>Mon, 30 Sep 2024 17:24:00 +0000</pubDate>
        <dc:creator>A. Jiang &lt;de34@live.cn&gt;</dc:creator>
    </item>
<item>
        <title>09e3a360581dc36d0820d3fb6da9bd7cfed87b5d - [libc++][modules] Fix missing and incorrect includes (#108850)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/optional#09e3a360581dc36d0820d3fb6da9bd7cfed87b5d</link>
        <description>[libc++][modules] Fix missing and incorrect includes (#108850)This patch adds a large number of missing includes in the libc++ headersand the test suite. Those were found as part of the effort to movetowards a mostly monolithic top-level std module.

            List of files:
            /llvm-project/libcxx/include/optional</description>
        <pubDate>Mon, 16 Sep 2024 19:06:20 +0000</pubDate>
        <dc:creator>Louis Dionne &lt;ldionne.2@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>748023dc3210533df2c1c6efc8af1b5954493701 - [libc++][NFC] Replace _LIBCPP_NORETURN and TEST_NORETURN with [[noreturn]] (#80455)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/optional#748023dc3210533df2c1c6efc8af1b5954493701</link>
        <description>[libc++][NFC] Replace _LIBCPP_NORETURN and TEST_NORETURN with [[noreturn]] (#80455)`[[__noreturn__]]` is now always available, so we can simply use theattribute directly instead of through a macro.

            List of files:
            /llvm-project/libcxx/include/optional</description>
        <pubDate>Wed, 11 Sep 2024 06:59:46 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<item>
        <title>4d08bb11eea5907fa9cdfe4c7bc9d5c91e79c6a7 - [libc++] Fix ambiguous constructors for std::complex and std::optional (#103409)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/optional#4d08bb11eea5907fa9cdfe4c7bc9d5c91e79c6a7</link>
        <description>[libc++] Fix ambiguous constructors for std::complex and std::optional (#103409)Fixes #101960

            List of files:
            /llvm-project/libcxx/include/optional</description>
        <pubDate>Wed, 14 Aug 2024 18:04:22 +0000</pubDate>
        <dc:creator>Louis Dionne &lt;ldionne.2@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>14ec4746cc342b3f62fcdd378e409aa1b0e39c3c - [libc++] Makes `unique_ptr operator*() noexcept. (#98047)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/optional#14ec4746cc342b3f62fcdd378e409aa1b0e39c3c</link>
        <description>[libc++] Makes `unique_ptr operator*() noexcept. (#98047)This implements - LWG2762  unique_ptr operator*() should be noexcept.Differential Revision: https://reviews.llvm.org/D128214

            List of files:
            /llvm-project/libcxx/include/optional</description>
        <pubDate>Sun, 21 Jul 2024 11:06:02 +0000</pubDate>
        <dc:creator>Mark de Wever &lt;koraq@xs4all.nl&gt;</dc:creator>
    </item>
<item>
        <title>e2c2ffbe7a1b5d9e32a2ce64279475b50c4cba5b - [libc++][NFC] Run clang-format on libcxx/include again (#95874)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/optional#e2c2ffbe7a1b5d9e32a2ce64279475b50c4cba5b</link>
        <description>[libc++][NFC] Run clang-format on libcxx/include again (#95874)As time went by, a few files have become mis-formatted w.r.t.clang-format. This was made worse by the fact that formatting was notbeing enforced in extensionless headers. This commit simply brings allof libcxx/include in-line with clang-format again.We might have to do this from time to time as we update our clang-formatversion, but frankly this is really low effort now that we&apos;ve formattedeverything once.

            List of files:
            /llvm-project/libcxx/include/optional</description>
        <pubDate>Tue, 18 Jun 2024 13:13:45 +0000</pubDate>
        <dc:creator>Louis Dionne &lt;ldionne.2@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>1ba8ed0cd7d03ed9b70aaf32b3d8e9205ef95ef2 - [libc++] Mark more types as trivially relocatable (#89724)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/optional#1ba8ed0cd7d03ed9b70aaf32b3d8e9205ef95ef2</link>
        <description>[libc++] Mark more types as trivially relocatable (#89724)Co-authored-by: Louis Dionne &lt;ldionne.2@gmail.com&gt;

            List of files:
            /llvm-project/libcxx/include/optional</description>
        <pubDate>Mon, 17 Jun 2024 11:09:04 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<item>
        <title>04f01a2b9cedc291fa7dd941de841dc957c75a33 - [libc++] Make the __availability header a sub-header of __config (#93083)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/optional#04f01a2b9cedc291fa7dd941de841dc957c75a33</link>
        <description>[libc++] Make the __availability header a sub-header of __config (#93083)In essence, this header has always been related to configuration ofthe library but we didn&apos;t want to put it inside &lt;__config&gt; due tocomplexity reasons. Now that we have sub-headers in &lt;__config&gt;, wecan move &lt;__availability&gt; to it and stop including it everywhere sincewe already obtain the required macros via &lt;__config&gt;.

            List of files:
            /llvm-project/libcxx/include/optional</description>
        <pubDate>Wed, 29 May 2024 01:29:11 +0000</pubDate>
        <dc:creator>Louis Dionne &lt;ldionne.2@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>580f60484e193b4f7f853ea34cc35f4a3240dfa7 - [libc++][NFC] Merge is{,_nothrow,_trivially}{,_copy,_move,_default}{_assignable,_constructible} (#85308)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/optional#580f60484e193b4f7f853ea34cc35f4a3240dfa7</link>
        <description>[libc++][NFC] Merge is{,_nothrow,_trivially}{,_copy,_move,_default}{_assignable,_constructible} (#85308)These headers have become very small by using compiler builtins, oftencontaining only two declarations. This merges these headers, sincethere doesn&apos;t seem to be much of a benefit keeping them separate.Specifically, `is_{,_nothrow,_trivially}{assignable,constructible}` arekept and the `copy`, `move` and `default` versions of these type traitsare moved in to the respective headers.

            List of files:
            /llvm-project/libcxx/include/optional</description>
        <pubDate>Mon, 18 Mar 2024 07:29:44 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<item>
        <title>95c1313f253cd343ee0b20cb7af7c71d904d96be - [libc++] Remove a few includes from &lt;__functional/hash.h&gt; (#83254)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/optional#95c1313f253cd343ee0b20cb7af7c71d904d96be</link>
        <description>[libc++] Remove a few includes from &lt;__functional/hash.h&gt; (#83254)This also moves `__all` from `sfinae_helpers.h` to `conjunction.h`.

            List of files:
            /llvm-project/libcxx/include/optional</description>
        <pubDate>Thu, 14 Mar 2024 18:49:37 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<item>
        <title>33de5a316caa3c9b07ee1ccc7fbc3434247ff787 - [libc++] Rename __fwd/hash.h to __fwd/functional.h and add reference_wrapper (#81445)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/optional#33de5a316caa3c9b07ee1ccc7fbc3434247ff787</link>
        <description>[libc++] Rename __fwd/hash.h to __fwd/functional.h and add reference_wrapper (#81445)We forward declare `reference_wrapper` in multiple places already. Thismoves the declaration to the canonical place and removes unnecessaryincludes of `__functional/reference_wrapper.h`.

            List of files:
            /llvm-project/libcxx/include/optional</description>
        <pubDate>Sun, 03 Mar 2024 19:45:17 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<item>
        <title>37dca605c9bd41732da010ee97ed15ad9585a37d - [libc++] Clean up includes of &lt;__assert&gt; (#80091)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/optional#37dca605c9bd41732da010ee97ed15ad9585a37d</link>
        <description>[libc++] Clean up includes of &lt;__assert&gt; (#80091)Originally, we used __libcpp_verbose_abort to handle assertion failures.That function was declared from all public headers. Since we don&apos;t usethat mechanism anymore, we don&apos;t need to declare __libcpp_verbose_abortfrom all public headers, and we can clean up a lot of unnecessaryincludes.This patch also moves the definition of the various assertion categoriesto the &lt;__assert&gt; header, since we now rely on regular IWYU for theseassertion macros.rdar://105510916

            List of files:
            /llvm-project/libcxx/include/optional</description>
        <pubDate>Thu, 29 Feb 2024 15:12:22 +0000</pubDate>
        <dc:creator>Louis Dionne &lt;ldionne.2@gmail.com&gt;</dc:creator>
    </item>
</channel>
</rss>
