<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/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>00927334 - [libc++] Use __is_exactly_{input, forward}_iterator</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/deque#00927334</link>
        <description>[libc++] Use __is_exactly_{input, forward}_iteratorReviewed By: ldionne, #libcSpies: libcxx-commitsDifferential Revision: https://reviews.llvm.org/D128646

            List of files:
            /llvm-project-15.0.7/libcxx/include/deque</description>
        <pubDate>Mon, 04 Jul 2022 20:45:49 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<item>
        <title>de4a57cb - [libc++] Re-add transitive includes that had been removed since LLVM 14</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/deque#de4a57cb</link>
        <description>[libc++] Re-add transitive includes that had been removed since LLVM 14This commit re-adds transitive includes that had been removed by4cd04d1687f1, c36870c8e79c, a83f4b9cda57, 1458458b558d, 2e2f3158c604,and 489637e66dd3. This should cover almost all the includes that hadbeen removed since LLVM 14 and that would contribute to breaking usercode when releasing LLVM 15.It is possible to disable the inclusion of these headers by defining_LIBCPP_REMOVE_TRANSITIVE_INCLUDES. The intent is that vendors willenable that macro and start fixing downstream issues immediately. Wecan then remove the macro (and the transitive includes) by default ina future release. That way, we will break users only once by removingtransitive includes in bulk instead of doing it bit by bit a everyrelease, which is more disruptive for users.Note 1: The set of headers to re-add was found by re-generating the        transitive include test on a checkout of release/14.x, which        provided the list of all transitive includes we used to provide.Note 2: Several includes of &lt;vector&gt;, &lt;optional&gt;, &lt;array&gt; and &lt;unordered_map&gt;        have been added in this commit. These transitive inclusions were        added when we implemented boyer_moore_searcher in &lt;functional&gt;.Note 3: This is a best effort patch to try and resolve downstream breakage        caused since branching LLVM 14. I wasn&apos;t able to perfectly mirror        transitive includes in LLVM 14 for a few headers, so I added a        release note explaining it. To summarize, adding boyer_moore_searcher        created a bunch of circular dependencies, so we have to break        backwards compatibility in a few cases.Differential Revision: https://reviews.llvm.org/D128661

            List of files:
            /llvm-project-15.0.7/libcxx/include/deque</description>
        <pubDate>Mon, 27 Jun 2022 19:53:41 +0000</pubDate>
        <dc:creator>Louis Dionne &lt;ldionne.2@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>db1978b6 - [libc++] Mark standard-mandated includes as such</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/deque#db1978b6</link>
        <description>[libc++] Mark standard-mandated includes as suchReviewed By: ldionne, Mordante, #libc, saugustineSpies: saugustine, MaskRay, arichardson, mstorsjo, jloser, libcxx-commits, arphamanDifferential Revision: https://reviews.llvm.org/D127953

            List of files:
            /llvm-project-15.0.7/libcxx/include/deque</description>
        <pubDate>Thu, 16 Jun 2022 20:43:46 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<item>
        <title>4cd04d16 - [libc++] Removes unneeded &lt;iterator&gt; includes.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/deque#4cd04d16</link>
        <description>[libc++] Removes unneeded &lt;iterator&gt; includes.Reviewed By: #libc, philnikDifferential Revision: https://reviews.llvm.org/D127675

            List of files:
            /llvm-project-15.0.7/libcxx/include/deque</description>
        <pubDate>Mon, 13 Jun 2022 18:05:36 +0000</pubDate>
        <dc:creator>Mark de Wever &lt;koraq@xs4all.nl&gt;</dc:creator>
    </item>
<item>
        <title>3cd4531b - [libc++] Granularize &lt;iterator&gt; includes</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/deque#3cd4531b</link>
        <description>[libc++] Granularize &lt;iterator&gt; includesReviewed By: ldionne, #libcSpies: libcxx-commits, wenleiDifferential Revision: https://reviews.llvm.org/D127445

            List of files:
            /llvm-project-15.0.7/libcxx/include/deque</description>
        <pubDate>Fri, 10 Jun 2022 17:53:10 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<item>
        <title>88930229 - [libc++][format][3/6] Adds a __container_buffer.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/deque#88930229</link>
        <description>[libc++][format][3/6] Adds a __container_buffer.Instead of writing every character directly into the container by usinga `back_insert_iterator` the data is buffered in an `array`. This bufferis then inserted to the container by calling its `insert` member function.Since there&apos;s no guarantee every container&apos;s `insert` behaves properlycontainers need to opt-in to this behaviour. The appropriate standardcontainers opt-in to this behaviour.This change improves the performance of the format functions that use a`back_insert_iterator`.Depends on D110495Reviewed By: ldionne, vitaut, #libcDifferential Revision: https://reviews.llvm.org/D110497

            List of files:
            /llvm-project-15.0.7/libcxx/include/deque</description>
        <pubDate>Sun, 26 Sep 2021 13:47:42 +0000</pubDate>
        <dc:creator>Mark de Wever &lt;koraq@xs4all.nl&gt;</dc:creator>
    </item>
<item>
        <title>385cc25a - [libc++] Ensure that all public C++ headers include &lt;__assert&gt;</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/deque#385cc25a</link>
        <description>[libc++] Ensure that all public C++ headers include &lt;__assert&gt;This patch changes the requirement for getting the declaration of theassertion handler from including &lt;__assert&gt; to including any publicC++ header of the library. Note that C compatibility headers areexcluded because we don&apos;t implement all the C headers ourselves --some of them are taken straight from the C library, like assert.h.It also adds a generated test to check it. Furthermore, this newgenerated test is designed in a way that will make it possible toreplace almost all the existing test-generation scripts with thissystem in upcoming patches.Differential Revision: https://reviews.llvm.org/D122506

            List of files:
            /llvm-project-15.0.7/libcxx/include/deque</description>
        <pubDate>Fri, 25 Mar 2022 16:55:36 +0000</pubDate>
        <dc:creator>Louis Dionne &lt;ldionne.2@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>3c6bd176 - [libc++] Rename __identity to __type_identity</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/deque#3c6bd176</link>
        <description>[libc++] Rename __identity to __type_identityIn C++20 the type trait `type_identity` was introduced. For the same purpose there is `__identity` for pre-C++20 code. The name is confusing, because since C++20 there is also `identity`, which isn&apos;t a type trait.Reviewed By: ldionne, Mordante, #libcSpies: EricWF, libcxx-commitsDifferential Revision: https://reviews.llvm.org/D122017

            List of files:
            /llvm-project-15.0.7/libcxx/include/deque</description>
        <pubDate>Fri, 18 Mar 2022 16:49:02 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<item>
        <title>52915d78 - [libc++] Granularize &lt;utility&gt; includes</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/deque#52915d78</link>
        <description>[libc++] Granularize &lt;utility&gt; includesReviewed By: ldionne, #libcSpies: EricWF, libcxx-commits, arphamanDifferential Revision: https://reviews.llvm.org/D120466

            List of files:
            /llvm-project-15.0.7/libcxx/include/deque</description>
        <pubDate>Sat, 05 Mar 2022 18:17:07 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<item>
        <title>f86c2b6f - [libc++] Add `explicit` to a bunch of internal detail ctors.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/deque#f86c2b6f</link>
        <description>[libc++] Add `explicit` to a bunch of internal detail ctors.Notably the following ctors remain non-explicit because theyare used as implicit conversions in too many places:* __debug_less(_Compare&amp;)* __map_iterator(_TreeIterator)* __map_const_iterator(_TreeIterator)* __hash_map_iterator(_HashIterator)* __hash_map_const_iterator(_HashIterator)Differential Revision: https://reviews.llvm.org/D119894

            List of files:
            /llvm-project-15.0.7/libcxx/include/deque</description>
        <pubDate>Wed, 09 Feb 2022 22:30:46 +0000</pubDate>
        <dc:creator>Arthur O&apos;Dwyer &lt;arthur.j.odwyer@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>f87aa19b - [libc++] Move everything related solely to _LIBCPP_ASSERT to its own file</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/deque#f87aa19b</link>
        <description>[libc++] Move everything related solely to _LIBCPP_ASSERT to its own fileThis is the first step towards disentangling the debug mode and assertionsin libc++. This patch doesn&apos;t make any functional change: it simply moves_LIBCPP_ASSERT-related stuff to its own file so as to make it clear thatlibc++ assertions and the debug mode are different things. Future patcheswill make it possible to enable assertions without enabling the debugmode.Differential Revision: https://reviews.llvm.org/D119769

            List of files:
            /llvm-project-15.0.7/libcxx/include/deque</description>
        <pubDate>Mon, 14 Feb 2022 18:41:09 +0000</pubDate>
        <dc:creator>Louis Dionne &lt;ldionne.2@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>2e2f3158 - [libc++] Granularize algorithm includes</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/deque#2e2f3158</link>
        <description>[libc++] Granularize algorithm includesReviewed By: Mordante, ldionne, Quuxplusone, #libc, #libc_abiSpies: #libc_vendors, libcxx-commits, miyukiDifferential Revision: https://reviews.llvm.org/D119667

            List of files:
            /llvm-project-15.0.7/libcxx/include/deque</description>
        <pubDate>Tue, 15 Feb 2022 17:18:08 +0000</pubDate>
        <dc:creator>Nikolas Klauser &lt;nikolasklauser@berlin.de&gt;</dc:creator>
    </item>
<item>
        <title>fa6b9e40 - [libc++] Normalize all our &apos;#pragma GCC system_header&apos;, and regression-test.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/deque#fa6b9e40</link>
        <description>[libc++] Normalize all our &apos;#pragma GCC system_header&apos;, and regression-test.Now we&apos;ll notice if a header forgets to include this magic phrase.Differential Revision: https://reviews.llvm.org/D118800

            List of files:
            /llvm-project-15.0.7/libcxx/include/deque</description>
        <pubDate>Wed, 02 Feb 2022 01:16:40 +0000</pubDate>
        <dc:creator>Arthur O&apos;Dwyer &lt;arthur.j.odwyer@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>7da4ee6f - [libcxx][NFC] Make sequence containers slightly more SFINAE-friendly during CTAD.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/deque#7da4ee6f</link>
        <description>[libcxx][NFC] Make sequence containers slightly more SFINAE-friendly during CTAD.Disable the constructors taking `(size_type, const value_type&amp;,allocator_type)` if `allocator_type` is not a valid allocator.Otherwise, these constructors are considered when resolving e.g.`(int*, int*, NotAnAllocator())`, leading to a hard error duringinstantiation. A hard error makes the Standard&apos;s requirement to notconsider deduction guides of the form `(Iterator, Iterator,BadAllocator)` during overload resolution essentially non-functional.The previous approach was to SFINAE away `allocator_traits`. This patchSFINAEs away the specific constructors instead, for consistency with`basic_string` -- see [LWG3076](wg21.link/lwg3076) which describesa very similar problem for strings (note, however, that unlike LWG3076,no valid constructor call is affected by the bad instantiation).Differential Revision: https://reviews.llvm.org/D114311

            List of files:
            /llvm-project-15.0.7/libcxx/include/deque</description>
        <pubDate>Wed, 01 Dec 2021 19:55:46 +0000</pubDate>
        <dc:creator>Konstantin Varlamov &lt;varconst@apple.com&gt;</dc:creator>
    </item>
<item>
        <title>eb8650a7 - [runtimes][NFC] Remove filenames at the top of the license notice</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/deque#eb8650a7</link>
        <description>[runtimes][NFC] Remove filenames at the top of the license noticeWe&apos;ve stopped doing it in libc++ for a while now because these nameswould end up rotting as we move things around and copy/paste stuff.This cleans up all the existing files so as to stop the spreadingas people copy-paste headers around.

            List of files:
            /llvm-project-15.0.7/libcxx/include/deque</description>
        <pubDate>Wed, 17 Nov 2021 21:25:01 +0000</pubDate>
        <dc:creator>Louis Dionne &lt;ldionne.2@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>68072a71 - [libc++] P0433R2: test that deduction guides are properly SFINAEd away.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/deque#68072a71</link>
        <description>[libc++] P0433R2: test that deduction guides are properly SFINAEd away.Deduction guides for containers should not participate in overloadresolution when called with certain incorrect types (e.g. when calledwith a template argument in place of an `InputIterator` that doesn&apos;tqualify as an input iterator). Similarly, class template argumentdeduction should not select `unique_ptr` constructors that take aa pointer.The tests try out every possible incorrect parameter (but never morethan one incorrect parameter in the same invocation).Also add deduction guides to the synopsis for associative and unorderedcontainers (this was accidentally omitted from [D112510](https://reviews.llvm.org/D112510)).Differential Revision: https://reviews.llvm.org/D112904

            List of files:
            /llvm-project-15.0.7/libcxx/include/deque</description>
        <pubDate>Tue, 09 Nov 2021 17:21:02 +0000</pubDate>
        <dc:creator>Konstantin Varlamov &lt;varconst@apple.com&gt;</dc:creator>
    </item>
<item>
        <title>b8608b87 - [libc++] Use addressof in assignment operator.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/deque#b8608b87</link>
        <description>[libc++] Use addressof in assignment operator.Replace `&amp;__rhs` with `_VSTD::addressof(__rhs)` to guard against ADL hijackingof `operator&amp;` in `operator=`. Thanks to @CaseyCarter for bringing it to ourattention.Similar issues with hijacking `operator&amp;` still exist, they will beaddressed separately.Reviewed By: #libc, Quuxplusone, ldionneDifferential Revision: https://reviews.llvm.org/D110852

            List of files:
            /llvm-project-15.0.7/libcxx/include/deque</description>
        <pubDate>Tue, 28 Sep 2021 17:15:18 +0000</pubDate>
        <dc:creator>Mark de Wever &lt;koraq@xs4all.nl&gt;</dc:creator>
    </item>
<item>
        <title>16bf4339 - [libc++] Comma-operator-proof a lot of algorithm/container code.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/deque#16bf4339</link>
        <description>[libc++] Comma-operator-proof a lot of algorithm/container code.Detected by evil-izing the widely used `MoveOnly` testing type.I had to patch some tests that were themselves using its comma operator,but I think that&apos;s a worthwhile cost in order to catch more placesin our headers that needed comma-proofing.The trick here is that even `++ptr, SomeClass()` can find a comma operatorby ADL, if `ptr` is of type `Evil*`. (A comma between two operandsof non-class-or-enum type is always treated as the built-incomma, without ADL. But if either operand is class-or-enum, thenADL happens for _both_ operands&apos; types.)Differential Revision: https://reviews.llvm.org/D109414

            List of files:
            /llvm-project-15.0.7/libcxx/include/deque</description>
        <pubDate>Wed, 08 Sep 2021 01:35:37 +0000</pubDate>
        <dc:creator>Arthur O&apos;Dwyer &lt;arthur.j.odwyer@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>4e0ea2cf - [libc++] Use enable_if_t instead of _EnableIf</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/deque#4e0ea2cf</link>
        <description>[libc++] Use enable_if_t instead of _EnableIfI just ran into a compiler error involving __bind_back and some overloadsthat were being disabled with _EnableIf. I noticed that the error messagewas quite bad and did not mention the reason for the overload beingexcluded. Specifically, the error looked like this:     candidate template ignored: substitution failure [with _Args =     &lt;ContiguousView&gt;]: no member named &apos;_EnableIfImpl&apos; in &apos;std::_MetaBase&lt;false&gt;&apos;Instead, when using enable_if or enable_if_t, the compiler is clever andcan produce better diagnostics, like so:     candidate template ignored: requirement &apos;is_invocable_v&lt;          std::__bind_back_op&lt;1, std::integer_sequence&lt;unsigned long, 0&gt;&gt;,          std::ranges::views::__transform::__fn &amp;, std::tuple&lt;PlusOne&gt; &amp;,          ContiguousView&gt;&apos; was not satisfied [with _Args = &lt;ContiguousView&gt;]Basically, it tries to do a poor man&apos;s implementation of concepts, whichis already a lot better than simply complaining about substitution failure.Hence, this commit uses enable_if_t instead of _EnableIf wheneverpossible. That is both more straightforward than using the internalhelper, and also leads to better error messages in those cases.I understand the motivation for _EnableIf&apos;s implementation was to improvecompile-time performance, however I believe striving to improve errormessages is even more important for our QOI, hence this patch. Furthermore,it is unclear that _EnableIf actually improved compile-time performancein any noticeable way (see discussion in the review for details).Differential Revision: https://reviews.llvm.org/D108216

            List of files:
            /llvm-project-15.0.7/libcxx/include/deque</description>
        <pubDate>Tue, 17 Aug 2021 16:26:09 +0000</pubDate>
        <dc:creator>Louis Dionne &lt;ldionne.2@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>475f831b - [libc++][NFCI] Remove unnecessary exception-throwing base classes</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/libcxx/include/deque#475f831b</link>
        <description>[libc++][NFCI] Remove unnecessary exception-throwing base classes__split_buffer_common was entirely unused, and __deque_base_commonwas unused except for two calls to __throw_out_of_range(), which havebeen inlined.The usual intent of the __xxx_base_common base classes is to localizewhere the exception-throwing code is instantiated, however that wasn&apos;tthe case here because we never explicitly instantiated those base classesin the shared library, unlike what we do for basic_string and vector.Differential Revision: https://reviews.llvm.org/D108384

            List of files:
            /llvm-project-15.0.7/libcxx/include/deque</description>
        <pubDate>Thu, 19 Aug 2021 16:15:31 +0000</pubDate>
        <dc:creator>Louis Dionne &lt;ldionne.2@gmail.com&gt;</dc:creator>
    </item>
</channel>
</rss>
