<?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 type_traits</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><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/type_traits#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/type_traits</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>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/type_traits#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/type_traits</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>2c10664afafcd5915ebbde9cb7cb0e9cf8751b34 - [libc++][NFC] Merge add_{const, cv, volatile}.h into a single header (#115610)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/type_traits#2c10664afafcd5915ebbde9cb7cb0e9cf8751b34</link>
        <description>[libc++][NFC] Merge add_{const, cv, volatile}.h into a single header (#115610)There isn&apos;t much benefit in having granular headers for only a fewsimple lines of code.

            List of files:
            /llvm-project/libcxx/include/type_traits</description>
        <pubDate>Sun, 10 Nov 2024 12:21:42 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<item>
        <title>a06591b4d4fb270b587fc5ef67b5a03dad752b40 - [libc++][type_traits] P2674R1: A trait for implicit lifetime types (#106870)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/type_traits#a06591b4d4fb270b587fc5ef67b5a03dad752b40</link>
        <description>[libc++][type_traits] P2674R1: A trait for implicit lifetime types (#106870)Implements P2674R1: https://wg21.link/P2674R1- https://eel.is/c++draft/type.traits  - https://eel.is/c++draft/meta.type.synop  - https://eel.is/c++draft/meta.unary.prop- https://eel.is/c++draft/support.limits  - https://eel.is/c++draft/version.synImplementation details:- Uses compiler intrinsic `__builtin_is_implicit_lifetime`:  - https://github.com/llvm/llvm-project/pull/101807- Tests based on:-https://github.com/llvm/llvm-project/blob/d213981c80626698a07b11ce872acba098a863d4/clang/test/SemaCXX/type-traits.cpp#L1989References:- Implicit-lifetime- Implicit-lifetime types [basic.types.general]/9:https://eel.is/c++draft/basic.types.general- Implicit-lifetime class [class.prop]/9:https://eel.is/c++draft/class.prop- P0593R6 Implicit creation of objects for low-level objectmanipulation: https://wg21.link/P0593R6- P1010R1 Container support for implicit lifetime types:https://wg21.link/P1010R1- P0593R6 Implicit creation of objects for low-level objectmanipulation: https://wg21.link/P0593R6Closes: #105259---------Co-authored-by: Hristo Hristov &lt;zingam@outlook.com&gt;

            List of files:
            /llvm-project/libcxx/include/type_traits</description>
        <pubDate>Wed, 09 Oct 2024 06:19:14 +0000</pubDate>
        <dc:creator>Hristo Hristov &lt;hghristov.rmm@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>33325524f5e80a898a7ae875e208a54af132001b - [libc++][modules] Refactor poisoned_hash_helper (#108296)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/type_traits#33325524f5e80a898a7ae875e208a54af132001b</link>
        <description>[libc++][modules] Refactor poisoned_hash_helper (#108296)The poisoned_hash_helper header was relying on an implicit forwarddeclaration of std::hash located in &lt;type_traits&gt;. When we improve themodularization of the library, that causes issues, in addition to beinga fundamentally non-portable assumption in the test suite.It turns out that the reason for relying on a forward declaration is tobe able to test that std::hash is *not* provided if we don&apos;t include anyheader that provides it. But testing that is actually both non-portableand not really useful.Indeed, what harm does it make if additional headers provide std::hashspecializations? That would certainly be conforming -- the Standardnever requires an implementation to avoid providing a declaration when agiven header is included, instead it mandates what *must* be providedfor sure. In that spirit, it would be conforming for e.g. `&lt;cstddef&gt;` todefine the hash specializations if that was our desire. I also don&apos;tread https://wg21.link/P0513R0 as going against that statement. Hence,this patch just removes that test which doesn&apos;t carry its weight.Fixes #56938

            List of files:
            /llvm-project/libcxx/include/type_traits</description>
        <pubDate>Thu, 12 Sep 2024 19:07:49 +0000</pubDate>
        <dc:creator>Louis Dionne &lt;ldionne.2@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>1c48c9cc43dbbbd1751e15d199b4d7d4fc52d828 - [libc++] Implement P2985R0: std::is_virtual_base_of (#105847)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/type_traits#1c48c9cc43dbbbd1751e15d199b4d7d4fc52d828</link>
        <description>[libc++] Implement P2985R0: std::is_virtual_base_of (#105847)This trait is implemented in C++26 conditionally on the compilersupporting the __builtin_is_virtual_base_of intrinsic. I believe onlytip-of-trunk Clang currently implements that builtin.Closes #105432

            List of files:
            /llvm-project/libcxx/include/type_traits</description>
        <pubDate>Mon, 26 Aug 2024 13:58:19 +0000</pubDate>
        <dc:creator>Louis Dionne &lt;ldionne.2@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>4dfa75c663e53be1d548b340e562dd5c4e87fe65 - [libc++] Merge is_scoped_enum.h into is_enum.h (#99458)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/type_traits#4dfa75c663e53be1d548b340e562dd5c4e87fe65</link>
        <description>[libc++] Merge is_scoped_enum.h into is_enum.h (#99458)

            List of files:
            /llvm-project/libcxx/include/type_traits</description>
        <pubDate>Thu, 18 Jul 2024 13:17:22 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<item>
        <title>dfddc0c4843baaf9605aeb1c4f82eac185e90265 - [libc++] Include the rest of the detail headers by version in the umbrella headers (#96032)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/type_traits#dfddc0c4843baaf9605aeb1c4f82eac185e90265</link>
        <description>[libc++] Include the rest of the detail headers by version in the umbrella headers (#96032)This is a follow-up to #83740.

            List of files:
            /llvm-project/libcxx/include/type_traits</description>
        <pubDate>Thu, 18 Jul 2024 08:59:58 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<item>
        <title>0eebb48fcfbcb93da123e39ef61b22dc80c9ec0d - [libc++] Merge is_member{,_object,_function}_pointer.h (#98727)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/type_traits#0eebb48fcfbcb93da123e39ef61b22dc80c9ec0d</link>
        <description>[libc++] Merge is_member{,_object,_function}_pointer.h (#98727)The implementations for these traits have been simplified quite a bit,since we have builtins available for them now.

            List of files:
            /llvm-project/libcxx/include/type_traits</description>
        <pubDate>Tue, 16 Jul 2024 12:40:05 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<item>
        <title>05f88b1769db90c10ca66810720b2092f9d73e34 - [libc++][NFC] Replace __apply_cv with __copy_cv or __copy_cvref (#90867)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/type_traits#05f88b1769db90c10ca66810720b2092f9d73e34</link>
        <description>[libc++][NFC] Replace __apply_cv with __copy_cv or __copy_cvref (#90867)`__apply_cv_t` and `__copy_cvref_t` are very closely related. They arein fact identical except that `__copy_cvref_t` handles rvalue referencesproperly. Some uses don&apos;t actually require handling of references, sothey are replaced with `__copy_cv_t`.

            List of files:
            /llvm-project/libcxx/include/type_traits</description>
        <pubDate>Fri, 10 May 2024 18:06:21 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&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/type_traits#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/type_traits</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>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/type_traits#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/type_traits</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/type_traits#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/type_traits</description>
        <pubDate>Thu, 29 Feb 2024 15:12:22 +0000</pubDate>
        <dc:creator>Louis Dionne &lt;ldionne.2@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>bea2ff6550686d872377247f09f53e202df5c390 - [libc++] Untangles invoke.</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/type_traits#bea2ff6550686d872377247f09f53e202df5c390</link>
        <description>[libc++] Untangles invoke.The type traits parts are moved to a type_traits detail header.This was discovered while working on modules.Reviewed By: #libc, ldionneDifferential Revision: https://reviews.llvm.org/D150538

            List of files:
            /llvm-project/libcxx/include/type_traits</description>
        <pubDate>Thu, 20 Apr 2023 19:03:40 +0000</pubDate>
        <dc:creator>Mark de Wever &lt;koraq@xs4all.nl&gt;</dc:creator>
    </item>
<item>
        <title>71400505ca048507e827013eb1ea0bc863525cab - [libc++] Updates C++2b to C++23.</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/type_traits#71400505ca048507e827013eb1ea0bc863525cab</link>
        <description>[libc++] Updates C++2b to C++23.During the ISO C++ Committee meeting plenary session the C++23 Standardhas been voted as technical complete.This updates the reference to c++2b to c++23 and updates the __cplusplusmacro.Note since we use clang-tidy 16 a small work-around is needed. Clangknows -std=c++23 but clang-tidy not so for now force the lit compilerflag to use -std=c++2b instead of -std=c++23.Reviewed By: #libc, philnik, jloser, ldionneDifferential Revision: https://reviews.llvm.org/D150795

            List of files:
            /llvm-project/libcxx/include/type_traits</description>
        <pubDate>Wed, 17 May 2023 15:54:53 +0000</pubDate>
        <dc:creator>Mark de Wever &lt;koraq@xs4all.nl&gt;</dc:creator>
    </item>
<item>
        <title>b7932803dede5f95eed3b1777dfd40ce94ef1676 - [libc++] Moves unwrap_reference to type_traits.</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/type_traits#b7932803dede5f95eed3b1777dfd40ce94ef1676</link>
        <description>[libc++] Moves unwrap_reference to type_traits.This was discovered while working on modules.Reviewed By: #libc, philnikDifferential Revision: https://reviews.llvm.org/D149351

            List of files:
            /llvm-project/libcxx/include/type_traits</description>
        <pubDate>Thu, 20 Apr 2023 19:03:40 +0000</pubDate>
        <dc:creator>Mark de Wever &lt;koraq@xs4all.nl&gt;</dc:creator>
    </item>
<item>
        <title>987f08fe229c2d857b28f08b3b1ba149e1b16851 - [libc++] Implement P1413R3 (Deprecate std::aligned_storage and std::aligned_union)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/type_traits#987f08fe229c2d857b28f08b3b1ba149e1b16851</link>
        <description>[libc++] Implement P1413R3 (Deprecate std::aligned_storage and std::aligned_union)There are no tests for the aliases because clang doesn&apos;t diagnose deprecated template aliases currently.Reviewed By: ldionne, #libcSpies: libcxx-commitsDifferential Revision: https://reviews.llvm.org/D127678

            List of files:
            /llvm-project/libcxx/include/type_traits</description>
        <pubDate>Sun, 11 Dec 2022 01:10:31 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<item>
        <title>d184958bad5c23e11ee91a16d9c551e1922387bf - [libc++][format] Adds range-default-formatter.</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/type_traits#d184958bad5c23e11ee91a16d9c551e1922387bf</link>
        <description>[libc++][format] Adds range-default-formatter.This adds an incomplete version where the specializations for theformat_kinds are disabled dummy formatters.Implements part of- P2585R0 Improving default container formattingReviewed By: ldionne, #libcDifferential Revision: https://reviews.llvm.org/D137271

            List of files:
            /llvm-project/libcxx/include/type_traits</description>
        <pubDate>Wed, 19 Oct 2022 17:50:48 +0000</pubDate>
        <dc:creator>Mark de Wever &lt;koraq@xs4all.nl&gt;</dc:creator>
    </item>
<item>
        <title>7ae66e5e9593f0bc470b5796d50c5b8979f62665 - [libc++] Granularize the rest of type_traits</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/type_traits#7ae66e5e9593f0bc470b5796d50c5b8979f62665</link>
        <description>[libc++] Granularize the rest of type_traitsReviewed By: ldionne, #libcSpies: libcxx-commits, mgornyDifferential Revision: https://reviews.llvm.org/D130471

            List of files:
            /llvm-project/libcxx/include/type_traits</description>
        <pubDate>Sat, 13 Aug 2022 21:10:31 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<item>
        <title>b7aa9c4ac8e7a2736125109deeb0be8b1f41f852 - [libc++] Granularize some more type_traits</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/type_traits#b7aa9c4ac8e7a2736125109deeb0be8b1f41f852</link>
        <description>[libc++] Granularize some more type_traitsReviewed By: ldionne, #libcSpies: libcxx-commits, mgornyDifferential Revision: https://reviews.llvm.org/D128948

            List of files:
            /llvm-project/libcxx/include/type_traits</description>
        <pubDate>Sun, 24 Jul 2022 14:03:12 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
</channel>
</rss>
