<?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 deque</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/deque#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/deque</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/deque#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/deque</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>979e9361f0e0426e555c94cb8b1a64c655805765 - [libc++] Fix improper static_cast in std::deque and __split_buffer (#119106)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/deque#979e9361f0e0426e555c94cb8b1a64c655805765</link>
        <description>[libc++] Fix improper static_cast in std::deque and __split_buffer (#119106)This PR addresses the improper use of `static_cast` to `size_t` where`size_type` is intended. Although the `size_type` member type of STLcontainers is usually a synonym of `std::size_t`, there is no guaranteethat they are always equivalent. The C++ standard does not mandate thisequivalence.In libc++&apos;s implementations of `std::deque`, `std::vector`, and`__split_buffer`, the `size_type` member type is defined as`std::allocator_traits&lt;allocator_type&gt;::size_type`, which is either`allocator_type::size_type` if available or`std::make_unsigned&lt;difference_type&gt;::type`. While it is true for`std::allocator` that the `size_type` member type is `std::size_t`, foruser-defined allocator types, they may mismatch. This justifies the needto replace `static_cast&lt;size_t&gt;` with `static_cast&lt;size_type&gt;` in thisPR.

            List of files:
            /llvm-project/libcxx/include/deque</description>
        <pubDate>Fri, 13 Dec 2024 14:28:30 +0000</pubDate>
        <dc:creator>Peng Liu &lt;winner245@hotmail.com&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/deque#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/deque</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>c7df10643bda4acdc9a02406a2eee8aa4ced747f - Unify naming of internal pointer members in std::vector and std::__split_buffer (#115517)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/deque#c7df10643bda4acdc9a02406a2eee8aa4ced747f</link>
        <description>Unify naming of internal pointer members in std::vector and std::__split_buffer (#115517)Related to PR #114423, this PR proposes to unify the naming of theinternal pointer members in `std::vector` and `std::__split_buffer` forconsistency and clarity.Both `std::vector` and `std::__split_buffer` originally used a`__compressed_pair&lt;pointer, allocator_type&gt;` member named `__end_cap_`to store an internal capacity pointer and an allocator. However,inconsistent naming changes have been made in both classes:- `std::vector` now uses `__cap_` and `__alloc_` for its internalpointer and allocator members.- In contrast, `std::__split_buffer` retains the name `__end_cap_` forthe capacity pointer, along with `__alloc_`.This inconsistency between the names `__cap_` and `__end_cap_` hascaused confusions (especially to myself when I was working on bothclasses). I suggest unifying these names by renaming `__end_cap_` to`__cap_` in `std::__split_buffer`.

            List of files:
            /llvm-project/libcxx/include/deque</description>
        <pubDate>Wed, 13 Nov 2024 10:08:08 +0000</pubDate>
        <dc:creator>Peng Liu &lt;winner245@hotmail.com&gt;</dc:creator>
    </item>
<item>
        <title>c6f3b7bcd0596d30f8dabecdfb9e44f9a07b6e4c - [libc++] Refactor the configuration macros to being always defined (#112094)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/deque#c6f3b7bcd0596d30f8dabecdfb9e44f9a07b6e4c</link>
        <description>[libc++] Refactor the configuration macros to being always defined (#112094)This is a follow-up to #89178. This updates the `&lt;__config_site&gt;`macros.

            List of files:
            /llvm-project/libcxx/include/deque</description>
        <pubDate>Wed, 06 Nov 2024 09:39:19 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<item>
        <title>9a1a8f33850d6c7a090bbe7fcf60dcdda93482d0 - [libc++][NFC] Simplify __split_buffer a bit (#114224)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/deque#9a1a8f33850d6c7a090bbe7fcf60dcdda93482d0</link>
        <description>[libc++][NFC] Simplify __split_buffer a bit (#114224)This is possible since we&apos;re not using `__compressed_pair` anymore.

            List of files:
            /llvm-project/libcxx/include/deque</description>
        <pubDate>Tue, 05 Nov 2024 13:15:31 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<item>
        <title>f1c341c36f1a8582163217196abf7401f81a4d2b - [libc++] Refactor __split_buffer to eliminate code duplication (#114138)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/deque#f1c341c36f1a8582163217196abf7401f81a4d2b</link>
        <description>[libc++] Refactor __split_buffer to eliminate code duplication (#114138)This PR refactors the `__split_buffer` class to eliminate codeduplication in the `push_back` and `push_front` member functions.**Motivation:**  The lvalue and rvalue reference overloads of `push_back` share identicallogic, which coincides with that of `emplace_back`. Similarly, theoverloads of `push_front` also share identical logic but lack an`emplace_front` member function, leading to an inconsistency. Theseidentical internal logics lead to significant code duplication, makingfuture maintenance more difficult.**Summary of Refactor:**  This PR reduces code redundancy by:1. Modifying both overloads of `push_back` to call `emplace_back`.2. Introducing a new `emplace_front` member function that encapsulatesthe logic of `push_front`, allowing both overloads of `push_front` tocall it (The addition of `emplace_front` also avoids the inconsistencyregarding the absence of `emplace_front`).The refactoring results in reduced code duplication, improvedmaintainability, and enhanced readability.

            List of files:
            /llvm-project/libcxx/include/deque</description>
        <pubDate>Mon, 04 Nov 2024 12:54:26 +0000</pubDate>
        <dc:creator>Peng Liu &lt;winner245@hotmail.com&gt;</dc:creator>
    </item>
<item>
        <title>8f9cce0bef317076fbdce677d6d6744ebd5dc02a - [libc++] Add container_traits (prework for `std::flat_map`) (#109578)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/deque#8f9cce0bef317076fbdce677d6d6744ebd5dc02a</link>
        <description>[libc++] Add container_traits (prework for `std::flat_map`) (#109578)This PR is extracted fromhttps://github.com/llvm/llvm-project/pull/98643, as per code reviewrequesthttps://github.com/llvm/llvm-project/pull/98643#discussion_r1768967793

            List of files:
            /llvm-project/libcxx/include/deque</description>
        <pubDate>Sat, 12 Oct 2024 17:29:59 +0000</pubDate>
        <dc:creator>Hui &lt;hui.xie1990@gmail.com&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/deque#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/deque</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>09e3a360581dc36d0820d3fb6da9bd7cfed87b5d - [libc++][modules] Fix missing and incorrect includes (#108850)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/deque#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/deque</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>27c83382d83dce0f33ae67abb3bc94977cb3031f - [libc++] Replace `__compressed_pair` with `[[no_unique_address]]` (#76756)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/deque#27c83382d83dce0f33ae67abb3bc94977cb3031f</link>
        <description>[libc++] Replace `__compressed_pair` with `[[no_unique_address]]` (#76756)This significantly simplifies the code, improves compile times andimproves the object layout of types using `__compressed_pair` in theunstable ABI. The only downside is that this is extremely ABI sensitiveand pedantically breaks the ABI for empty final types, since the addressof the subobject may change. The ABI of the whole object should not beaffected.Fixes #91266Fixes #93069

            List of files:
            /llvm-project/libcxx/include/deque</description>
        <pubDate>Mon, 16 Sep 2024 09:08:57 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<item>
        <title>17e0686ab1107a1a675d8783383dedf70fa24033 - [libc++][NFC] Use [[__nodiscard__]] unconditionally (#80454)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/deque#17e0686ab1107a1a675d8783383dedf70fa24033</link>
        <description>[libc++][NFC] Use [[__nodiscard__]] unconditionally (#80454)`__has_cpp_attribute(__nodiscard__)` is always true now, so we might aswell replace `_LIBCPP_NODISCARD`. It&apos;s one less macro that can result inbad diagnostics.

            List of files:
            /llvm-project/libcxx/include/deque</description>
        <pubDate>Thu, 12 Sep 2024 19:18:43 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<item>
        <title>39b6900852e7a1187bd742ba5c1387ca1be58e2c - [libc++][spaceship] Removes unneeded relational operators. (#100441)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/deque#39b6900852e7a1187bd742ba5c1387ca1be58e2c</link>
        <description>[libc++][spaceship] Removes unneeded relational operators. (#100441)This is a followup of https://github.com/llvm/llvm-project/pull/99343.Since that patch was quite late in the LLVM-19 release cycle some of theunneeded relational operator were not removed in C++20.This removes them and gives the change a bit more &quot;baking&quot; time, just incase there are issues with this change in user code. This change isintended to be an NFC.

            List of files:
            /llvm-project/libcxx/include/deque</description>
        <pubDate>Tue, 30 Jul 2024 17:06:15 +0000</pubDate>
        <dc:creator>Mark de Wever &lt;koraq@xs4all.nl&gt;</dc:creator>
    </item>
<item>
        <title>8d3252a8987818171878a26e4298b4b5dbf2a7e9 - [libc++][spaceship] Implements X::iterator container requirements. (#99343)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/deque#8d3252a8987818171878a26e4298b4b5dbf2a7e9</link>
        <description>[libc++][spaceship] Implements X::iterator container requirements. (#99343)This implements the requirements for the container iterator requirementsfor array, deque, vector, and `vector&lt;bool&gt;`.Implements:- LWG3352 strong_equality isn&apos;t a thingImplements parts of:- P1614R2 The Mothership has LandedFixes: https://github.com/llvm/llvm-project/issues/62486

            List of files:
            /llvm-project/libcxx/include/deque</description>
        <pubDate>Wed, 24 Jul 2024 17:42:48 +0000</pubDate>
        <dc:creator>Mark de Wever &lt;koraq@xs4all.nl&gt;</dc:creator>
    </item>
<item>
        <title>d043e4c322489fa5b9f6363e3c83984219c2b602 - [libc++] Restore `__synth_three_way` lambda (#90398)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/deque#d043e4c322489fa5b9f6363e3c83984219c2b602</link>
        <description>[libc++] Restore `__synth_three_way` lambda (#90398)Restore `__synth_three_way` lambda to match the Standard. GH-57222 is done, restoring the Standard wording implementation shouldbe possible.https://github.com/llvm/llvm-project/blob/df28d4412c1d21b0e18896c92ac77d2fac7729f1/libcxx/include/__compare/synth_three_way.h#L28According to commenthttps://github.com/llvm/llvm-project/issues/59513#issuecomment-2068338762,GH-59513 is not a blocker.Co-authored-by: Hristo Hristov &lt;zingam@outlook.com&gt;

            List of files:
            /llvm-project/libcxx/include/deque</description>
        <pubDate>Sun, 07 Jul 2024 17:49:10 +0000</pubDate>
        <dc:creator>Hristo Hristov &lt;hghristov.rmm@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>79e8a5952366eacd92201a8d6472726fc14e00fd - [libc++] Move allocator assertion into allocator_traits (#94750)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/deque#79e8a5952366eacd92201a8d6472726fc14e00fd</link>
        <description>[libc++] Move allocator assertion into allocator_traits (#94750)There is code duplication in all containers that static_assert theallocator matches the allocator requirements in the spec. This check canbe moved into a more centralised place.

            List of files:
            /llvm-project/libcxx/include/deque</description>
        <pubDate>Tue, 25 Jun 2024 15:13:48 +0000</pubDate>
        <dc:creator>Hui &lt;hui.xie1990@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>1f98ac095e35f12a85d71101269df00279faa55c - [libc++][NFC] Replace _NOEXCEPT and _LIBCPP_CONSTEXPR macros with the keywords in C++11 code (#96387)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/deque#1f98ac095e35f12a85d71101269df00279faa55c</link>
        <description>[libc++][NFC] Replace _NOEXCEPT and _LIBCPP_CONSTEXPR macros with the keywords in C++11 code (#96387)

            List of files:
            /llvm-project/libcxx/include/deque</description>
        <pubDate>Sun, 23 Jun 2024 20:03:41 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<item>
        <title>cb417401879ce70b441a999c4a30f7b64b8d426b - [libc++] Refactor&lt;__type_traits/is_swappable.h&gt; (#86822)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/deque#cb417401879ce70b441a999c4a30f7b64b8d426b</link>
        <description>[libc++] Refactor&lt;__type_traits/is_swappable.h&gt; (#86822)This changes the `is_swappable` implementation to use variable templatesfirst and basing the class templates on that. This avoids instantiatingthem when the `_v` versions are used, which are generally less resourceintensive.

            List of files:
            /llvm-project/libcxx/include/deque</description>
        <pubDate>Tue, 18 Jun 2024 09:01:43 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<item>
        <title>6b4b29f85900995b2a3b817548be4a534d46763b - [libc++][NFC] Remove unnecessary parens in static_asserts (#95605)</title>
        <link>http://src.rcs.uwaterloo.ca:8080/source/history/llvm-project/libcxx/include/deque#6b4b29f85900995b2a3b817548be4a534d46763b</link>
        <description>[libc++][NFC] Remove unnecessary parens in static_asserts (#95605)These were required a long time ago due to `static_assert` not actuallybeing available in C++03. Now `static_assert` is simply mapped to`_Static_assert` in C++03, making the additional parens unnecessary.

            List of files:
            /llvm-project/libcxx/include/deque</description>
        <pubDate>Tue, 18 Jun 2024 08:45:30 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
</channel>
</rss>
