C++ Links #16—Bartlomiej Filipek and Wojciech Razik

The next episode of the ‘most useful C++ links’ is now available:

C++ Links #16

by Bartlomiej Filipek and Wojciech Razik

From the article:

See the most important and useful articles, podcasts and videos that happen between 19th and 25th of January 2019.

This week you will find a link to a ray-tracer, real-life examples of ranges, new useful features of Microsoft Visual Studio and many more!

Italian C++ Conference 2019: Call for sessions and sponsors

I am very happy to announce the 4th edition of the Italian C++ Conference, the biggest annual conference about C++ development in Italy.

 

When: June 15, 2019

Where: Milan (Politecnico di Milano)

Website: https://italiancpp.org/itcppcon19

 

I am very excited to have Andrei Alexandrescu as keynote speaker this year!

 

The call for sessions is open until Feb 28:

Submit your talk here

One track will be entirely in English.

 

The event is totally not-for-profit so we are looking for sponsors. For more information, please get in touch by sending an email to info [at] italiancpp [dot] org.

2019-01 pre-Kona mailing available (part 2 of 2)

The full 2019-01 mailing of new standards papers is now available.

 

WG21 Number Title Author Document Date Mailing Date Previous Version Subgroup Disposition
P1253R0 Guidelines for when a WG21 proposal should be reviewed by SG16, the text and Unicode study group Steve Downey 2019-01-21 2019-01 WG21
P1255R2 A view of 0 or 1 elements: view::maybe Steve Downey 2018-11-26 2019-01 P1255R1 Library Evolution
P1280R1 Integer Width Literals Isabella Muerte 2018-10-05 2019-01 P1280R0 Library Evolution
P1286R1 Contra CWG DR1778 Richard Smith 2019-01-18 2019-01 P1286R0 Core, Library
P1290R1 Avoiding undefined behavior in contracts J. Daniel Garcia, Ville Voutilainen 2019-01-21 2019-01 P1290R0 Evolution, Core
P1293R2 ostream_joiner Mike Spertus, Nathan Wilson 2019-01-21 2019-01 P1293R1 Library Evolution, Library
P1301R2 [[nodiscard("should have a reason")]] JeanHeyd Meneide, Isabella Muerte 2019-01-21 2019-01 P1301R1 Evolution, Core
P1302R1 Implicit Module Partition Lookup Isabella Muerte, Richard Smith 2019-01-21 2019-01 P1302R0 Evolution
P1306R1 Expansion statements Andrew Sutton, Sam Goodrick, Daveed Vandevoorde 2019-01-21 2019-01 P1306R0 Evolution
P1320R1 Allowing contract predicates on non-first declarations Ville Voutilainen 2019-01-20 2019-01 P1320R0 Evolution
P1323R1 Contract postconditions and return type deduction Hubert S.K. Tong 2019-01-19 2019-01 P1323R0 Core
P1329R0 On the Coroutines TS Mihail Mihaylov, Vassil Vassilev 2018-11-20 2019-01 WG21
P1331R0 Permitting trivial default initialization in constexpr contexts CJ Johnson 2019-01-04 2019-01 Evolution
P1337R0 Aliasing the standard library as a means to save C++ CJ Johnson 2019-04-01 2019-01 Library Evolution
P1339R0 Disallowing the friending of names in namespace std CJ Johnson 2019-01-04 2019-01 Library Evolution
P1344R0 Pre/Post vs. Enspects/Exsures Nathan Myers 2019-01-18 2019-01 Evolution
P1347R1 Modules: ADL & Internal Linkage Nathan Sidwell, Davis Herring 2019-01-17 2019-01 P1347R0 Evolution
P1351R0 Intrusive smart pointer feedback Mark Zeren 2019-01-20 2019-01 Library Evolution
P1355R1 Exposing a narrow contract for ceil2 Chris Kennelly 2019-01-21 2019-01 P1355R0 SG6, Library Evolution, Library
P1357R0 Traits for [Un]bounded Arrays Walter E. Brown, Glen J. Fernandes 2019-01-06 2019-01 Library
P1361R0 Integration of chrono with text formatting Victor Zverovich, Daniela Engert, Howard E. Hinnant 2019-01-20 2019-01 Library Evolution, Library
P1371R0 Pattern Matching Sergei Murzin, Michael Park, David Sankel, Dan Sarginson 2019-01-21 2019-01 Evolution
P1377R0 Summary of Dec 2018 SG14 freestanding discussions Ben Craig 2019-01-12 2019-01 WG21
P1380R1 Ambiguity and Insecurities with Three-Way Comparison Lawrence Crowl 2019-01-20 2019-01 P1380R0 Core, Library
P1382R0 volatile_load<T> and volatile_store<T> JF Bastien, Paul McKenney 2019-01-11 2019-01 SG1
P1383R0 More constexpr for <cmath> and <complex> Edward J. Rosten, Oliver J. Rosten 2019-01-18 2019-01 SG6, Library Evolution, Library
P1385R0 A proposal to add linear algebra support to the C++ standard library Guy Davidson, Bob Steagall 2019-01-21 2019-01 SG6, Library Evolution Incubator
P1386R0 A Standard Audio API for C++: Motivation, Scope, and Basic Design Guy Somberg, Guy Davidson, Timur Doumler 2019-01-21 2019-01 SG13
P1388R0 2019-01-11 SG20 Telecon Minutes JC van Winkel, Christopher Di Bella 2019-01-11 2019-01 SG20
P1389R0 Standing Document for SG20: Guidelines for Teaching C++ to Beginners Christopher Di Bella, Simon Brand, Michael Adams 2019-01-21 2019-01 SG20
P1390R0 Suggested Reflection TS NB Resolutions Matúš Chochlík, Axel Naumann, and David Sankel 2019-01-10 2019-01 SG7, Evolution, Core, Library Evolution, Library
P1391R0 Range constructor for std::string_view Corentin Jabot 2019-01-21 2019-01 Library Evolution
P1392R0 Differences Between Functions and Function Templates Davis Herring, Roger Orr 2019-01-14 2019-01 WG21
P1393R0 A General Property Customization Mechanism David Hollman, Chris Kohlhoff, Bryce Lelbach, Jared Hoberock, Gordon Brown, Michał Dominiak 2019-01-13 2019-01 Library Evolution
P1394R0 Range constructor for std::span Corentin Jabot, Casey Carter 2019-01-21 2019-01 Library Evolution
P1395R0 Modules: Partitions Are Not a Panacea Nathan Sidwell 2019-01-18 2019-01 Evolution
P1401R0 Narrowing contextual conversions to bool Andrzej Krzemienski 2019-01-15 2019-01 Evolution
P1402R0 std::cstring_view - a C compatible std::string_view adapter Andrew Tomazos 2019-01-10 2019-01 Library Evolution
P1403R0 Experience Report: Implementing a Coroutines TS Frontend to an Existing Tasking Library David S. Hollman 2019-01-16 2019-01 SG1, Evolution
P1404R0 bad_alloc is not out-of-memory! Andrzej Krzemienski 2019-01-15 2019-01 Evolution, Library Evolution
P1405R0 C++20 Executors are Resilient to ABI Breakage Jared Hoberock, Chris Kohlhoff 2019-01-21 2019-01 SG1
P1406R0 Add more std::hash specializations Alexander Zaitsev, Antony Polukhin 2018-12-04 2019-01 Library Evolution Incubator, Library Evolution, Library
P1407R0 Tell Programmers About Signed Integer Overflow Behavior Scott Schurr 2019-01-17 2019-01 SG12
P1408R0 Abandon observer_ptr Bjarne Stroustrup 2018-01-04 2019-01 Evolution, Library Evolution
P1410R0 Remove deprecated strstream Peter Sommerlad 2019-01-21 2019-01 Library Evolution, Library
P1411R0 Please reconsider <scope> for C++20 Peter Sommerlad 2019-01-21 2019-01 Library Evolution
P1413R0 A safer interface for std::aligned_storage CJ Johnson 2019-01-17 2019-01 Library Evolution
P1415R0 SG19 Machine Learning Layered List Michael Wong, Vincent Reverdy, Ritwik Dubey, Richard Dosselmann, Eugenio Bargiacchi 2019-01-21 2019-01 SG19
P1416R0 SG19 Linear Algebra for Data Science and Machine Learning Johann Mabille, Matthieu Brucher 2019-01-21 2019-01 SG19
P1417R0 Historical lessons for C++ linear algebra library standardization Mark Hoemmen, Jayesh Badwaik, Matthieu Brucher, Athanasios (Nasos) Iliopoulos, John Michopoulos 2019-01-21 2019-01 SG6
P1419R0 A SFINAE-friendly trait to determine the extent of statically sized containers Corentin Jabot, Casey Carter 2019-01-21 2019-01 Library Evolution
P1421R0 Assigning semantics to different Contract Checking Statements Andrzej Krzemienski 2019-01-18 2019-01 Evolution
P1422R0 SG16: Unicode meeting summaries 2018/10/17 - 2019/01/09 Tom Honermann 2019-01-17 2019-01 SG16
P1423R0 char8_t backward compatibility remediation Tom Honermann 2019-01-20 2019-01 Evolution, Library Evolution
P1424R0 'constexpr' feature macro concerns Antony Polukhin 2018-12-26 2019-01 SG10, Library
P1425R0 Iterators pair constructors for stack and queue Corentin Jabot 2019-01-21 2019-01 Library Evolution
P1426R0 Pull the Plug on Contracts? Nathan Myers 2019-01-18 2019-01 WG21
P1427R0 Concerns about module toolability Peter Bindels, Ben Craig, Steve Downey, Rene Rivera, Tom Honermann, Corentin Jabot, Stephen Kelly 2018-11-20 2019-01 WG21
P1428R0 Subscripts and sizes should be signed Bjarne Stroustrup 2018-01-18 2019-01 Evolution, Library Evolution
P1429R0 Contracts That Work Joshua Berne, John Lakos 2019-01-22 2019-01 Evolution
P1430R0 First-class symmetric coroutines in C++ Mihail Mihaylov, Vassil Vassilev 2019-01-21 2019-01 WG21
P1433R0 Compile Time Regular Expressions Hana Dusíková 2019-01-21 2019-01 SG16, Library Evolution Incubator
P1434R0 Discussing Pointer Provenance Hal Finkel, Jens Gustedt, Martin Uecker 2019-01-21 2019-01 SG12
P1436R0 Executor properties for affinity-based execution Gordon Brown, Ruyman Reyes, Michael Wong, H. Carter Edwards, Thomas Rodgers, Mark Hoemmen 2019-01-21 2019-01 SG1, SG14, Library Evolution
P1439R0 Charset Transcoding, Transformation, and Transliteration Steve Downey 2019-01-21 2019-01 SG16
P1440R0 is_clamped Johel Guerrero 2019-01-19 2019-01 Library Evolution Incubator
P1442R0 A Medley of Networking TS improvements Damian Jarek 2019-01-18 2019-01 Library Evolution
P1443R0 SG14: Low Latency Meeting Minutes 2018/07/11 - 2019/01/09 Michael Wong 2019-01-21 2019-01 SG14
P1444R0 SG19: Machine Learning 2018/12/14 - 2019/01/11 Michael Wong 2019-01-21 2019-01 SG19
P1445R0 Concurrency TS: to update or not update Michael Wong 2019-01-21 2019-01 SG1
P1446R0 Reconsider the Networking TS for inclusion in C++20 Christopher Kohlhoff 2019-01-18 2019-01 WG21
P1447R0 constexpr C++ is not constexpr C Matúš Chochlík, Axel Naumann, and David Sankel 2019-01-21 2019-01 SG7, Evolution, Library Evolution
P1448R0 Simplifying Mixed Contract Modes Nathan Burgers 2019-01-20 2019-01 Evolution
P1449R0 Towards Tree and Graph Data Structures for C++ Vincent Reverdy 2019-01-21 2019-01 SG19
P1450R0 Enriching type modification traits Vincent Reverdy 2019-01-21 2019-01 Library Evolution Incubator
P1452R0 On the non-uniform semantics of return-type-requirements Hubert S.K. Tong 2019-01-21 2019-01 Evolution
P1453R0 Modularizing the Standard Library is a Reorganization Opportunity Bryce Adelstein Lelbach 2019-01-21 2019-01 Library Evolution
P1456R0 Move-only views Casey Carter 2019-01-25 2019-01 Library Evolution
P1457R0 C++ Standard Library Issues to be moved in Kona Marshall Clow 2019-01-21 2019-01 WG21
P1458R0 Mandating the Standard Library: Clause 16 - Language support library Marshall Clow 2019-01-20 2019-01 Library
P1459R0 Mandating the Standard Library: Clause 18 - Diagnostics library Marshall Clow 2019-01-20 2019-01 Library
P1462R0 Mandating the Standard Library: Clause 20 - Strings library Marshall Clow 2019-01-20 2019-01 Library
P1463R0 Mandating the Standard Library: Clause 21 - Containers library Marshall Clow 2019-01-20 2019-01 Library
P1464R0 Mandating the Standard Library: Clause 22 - Iterators library Marshall Clow 2019-01-20 2019-01 Library
P1465R0 Function optimization hint attributes: [[always_inline]], [[never_inline]] David Goldblatt 2019-01-20 2019-01 Evolution
P1466R0 Miscellaneous minor fixes for chrono Howard E. Hinnant 2019-01-21 2019-01 Library
P1467R0 Extended floating-point types Michał Dominiak, David Olsen 2019-01-21 2019-01 SG6, Evolution, Library Evolution
P1468R0 Fixed-layout floating-point type aliases Michał Dominiak, Boris Fomitchev, Sergei Nikolaev 2019-01-21 2019-01 SG6, Evolution, Library Evolution
P1469R0 Disallow _ Usage in C++20 for Pattern Matching in C++23 Sergei Murzin, Michael Park, David Sankel, Dan Sarginson 2019-01-21 2019-01 Evolution
P1470R0 Against a standard concurrent hashmap David Goldblatt 2018-01-20 2019-01 SG1
P1471R0 The trouble with coroutine_traits Christopher Kohlhoff 2019-01-20 2019-01 Evolution
P1472R0 SG5: Transactional Memory (TM) Meeting Minutes (June 2018 - January 2019) Hans Boehm 2019-01-18 2019-01 SG5
P1473R0 Shadow namespaces Casey Carter 2019-01-21 2019-01 Library Evolution
P1474R0 Helpful pointers for ContiguousIterator Casey Carter 2019-01-21 2019-01 Library Evolution
P1477R0 Coroutines TS Simplifications Lewis Baker 2019-01-20 2019-01 Evolution
P1479R0 ostringstream wrapper Robert Kawulak 2019-01-21 2019-01 Library Evolution Incubator
P1481R0 constexpr structured bindings Nicolas Lesser 2019-01-21 2019-01 Evolution

2019-01 pre-Kona mailing available (part 1 of 2)

The full 2019-01 mailing of new standards papers is now available.

 

WG21 Number Title Author Document Date Mailing Date Previous Version Subgroup Disposition
N4795 PL22.16/WG21 Draft agenda: 18-23 Febuary 2019, Kona, HI, USA John Spicer 2019-01-04 2019-01   WG21  
N4796 Working Draft, C++ Extensions for Parallelism Version 2 Jared Hoberock 2019-01-21 2019-01 N4793 WG21  
N4797 Parallelism TS Editor’s Report, pre-Kona mailing Jared Hoberock 2019-01-21 2019-01   WG21  
N4798 WG21 telecon meeting: Pre-Kona Herb Sutter 2019-01-19 2019-01   WG21  
N4799 Editors' Report - Programming Languages - C++ Richard Smith 2019-01-21 2019-01   WG21  
N4800 Working Draft, Standard for Programming Language C++ Richard Smith 2019-01-21 2019-01 N4791 WG21  
P0009R9 mdspan: A Non-Owning Multidimensional Array Reference H. Carter Edwards, Bryce Adelstein Lelbach, Daniel Sunderland, David Hollman, Christian Trott, Mauro Bianco, Ben Sander, Athanasios Iliopoulos, John Michopoulos, Mark Hoemmen 2019-01-20 2019-01 P0009R8 Library  
P0037R6 Fixed-Point Real Numbers John McFarlane 2019-01-21 2019-01 P0037R5 SG6, SG14, Library Evolution  
P0228R3 unique_function: a move-only std::function Ryan McDougall, Matt Calabrese 2019-01-09 2019-01 P0228R2 Library Evolution  
P0260R3 C++ Concurrent Queues Lawrence Crowl, Chris Mysen 2019-01-20 2019-01 P0260R2 Library Evolution Incubator  
P0330R4 Literal Suffixes for ptrdiff_t and size_t JeanHeyd Meneide, Rein Halbersma 2019-01-21 2019-01 P0330R3 Evolution, Core  
P0408R6 Efficient Access to basic_stringbuf’s Buffer Peter Sommerlad 2019-01-21 2019-01 P0408R5 Library Evolution, Library  
P0429R6 A Standard flatmap Zach Laine 2019-01-21 2019-01 P0429R5 Library  
P0443R10 A Unified Executors Proposal for C++ Jared Hoberock, Michael Garland, Chris Kohlhoff, Chris Mysen, H. Carter Edwards, Gordon Brown, David Hollman 2019-01-21 2019-01 P0443R9 SG1, Library Evolution  
P0448R2 A strstream replacement using span<charT> as buffer Peter Sommerlad 2019-01-21 2019-01 P0448R1 Library Evolution, Library  
P0533R4 constexpr for <cmath> and <cstdlib> Edward J. Rosten, Oliver J. Rosten 2019-01-07 2019-01 P0533R3 Library  
P0549R5 Adjuncts to std::hash Walter E. Brown 2019-01-20 2019-01 P0549R4 Library  
P0593R3 Implicit creation of objects for low-level object manipulation Richard Smith 2019-01-18 2019-01 P0593R2 Evolution  
P0631R5 Math Constants Lev Minkovsky, John McFarlane 2019-01-12 2019-01 P0631R4 Library  
P0645R5 Text Formatting Victor Zverovich 2019-01-20 2019-01 P0645R4 Library Evolution, Library  
P0652R2 Concurrent associative data structure with unsynchronized view Sergey Murylev, Anton Malakhov, Antony Polukhin 2019-01-15 2019-01 P0652R1 SG1  
P0660R8 Stop Tokens and a Joining Thread Nicolai Josuttis, Lewis Baker, Billy O’Neal, Herb Sutter, Anthony Williams 2019-01-20 2019-01 P0660R7 SG1, Library Evolution, Library  
P0664R7 C++ Coroutine TS Issues Gor Nishanov 2019-01-16 2019-01 P0664R6 Evolution, Core, Library  
P0784R5 More constexpr containers Peter Dimov, Louis Dionne, Nina Ranns, Richard Smith, Daveed Vandevoorde 2019-01-21 2019-01 P0784R4 Evolution, Core, Library Evolution  
P0790R2 Effect of operator<=> on the C++ Standard Library David Stone 2019-01-21 2019-01 P0790R1 Library Evolution, Library  
P0798R3 Monadic operations for std::optional Simon Brand 2019-01-21 2019-01 P0798R2 SG14, Library Evolution  
P0829R4 Freestanding Proposal Ben Craig 2019-01-12 2019-01 P0829R3 SG14, Library Evolution  
P0843R3 static_vector Gonzalo Brito Gadeschi 2019-01-20 2019-01 P0843R2 Library Evolution  
P0847R2 Deducing this Gašper Ažman, Simon Brand, Ben Deane, Barry Revzin 2019-01-15 2019-01 P0847R1 SG7, Evolution  
P0848R1 Conditionally Trivial Special Member Functions Barry Revzin, Casey Carter 2019-01-18 2019-01 P0848R0 Core  
P0876R5 fiber_context - fibers without scheduler Oliver Kowalke, Nat Goodspeed 2019-01-19 2019-01 P0876R4 SG1  
P0880R2 Numbers interaction Igor Klevanets, Antony Polukhin 2019-01-15 2019-01 P0880R1 SG6, Library Evolution  
P0881R3 A Proposal to add stacktrace library Alexey Gorgurov, Antony Polukhin 2019-01-04 2019-01 P0881R2 Core, Library  
P0886R0 Response to “Fibers under the magnifying glass” Nat Goodspeed, Oliver Kowalke 2019-01-06 2019-01   SG1, Evolution  
P0889R1 Ultimate copy elision Antony Polukhin 2019-01-09 2019-01 P0889R0 Evolution, Core  
P0891R2 Make strong_order a Customization Point! Gašper Ažman, Jeff Snyder 2019-01-20 2019-01 P0891R1 Library Evolution, Library  
P0894R1 realloc() for C++ Victor Dyachenko 2019-01-18 2019-01 P0894R0 Library Evolution  
P0901R3 Size feedback in operator new Andrew Hunter, Chris Kennelly 2019-01-21 2019-01 P0901R2 Evolution  
P0912R4 Merge Coroutines TS into C++20 working draft Gor Nishanov 2019-01-16 2019-01 P0912R3 WG21  
P0920R1 Precalculated hash values in lookup Mateusz Pusz 2019-01-07 2019-01 P0920R0 Library  
P0939R2 Direction for ISO C++ H. Hinnant, R. Orr, B. Stroustrup, D. Vandevoorde, M. Wong 2019-01-21 2019-01 P0939R1 WG21  
P0940R2 Concurrency TS is growing: Concurrent Utilities and Data Structures Michael Wong, Olivier Giroux 2019-01-21 2019-01 P0940R1 SG1  
P0953R2 constexpr reflexpr Matúš Chochlík, Axel Naumann, and David Sankel 2019-01-19 2019-01 P0953R1 SG7  
P1019R2 Integrating Executors with Parallel Algorithms Jared Hoberock 2019-01-21 2019-01 P1019R1 SG1, Library Evolution  
P1021R3 Filling holes in Class Template Argument Deduction Mike Spertus, Timur Doumler, Richard Smith 2018-11-26 2019-01 P1021R2 Core  
P1024R2 Usability Enhancements for std::span Tristan Brindle 2019-01-20 2019-01 P1024R1 Library  
P1035R4 Input range adaptors Christopher Di Bella, Casey Carter, Corentin Jabot 2018-10-08 2019-01 P1035R3 Library Evolution  
P1040R4 std::embed JeanHeyd Meneide 2019-01-21 2019-01 P1040R3 Evolution, Library Evolution  
P1041R3 Make char16_t/char32_t string literals be UTF-16/32 R. Martinho Fernandes 2019-01-21 2019-01 P1041R1 Evolution  
P1063R2 Core Coroutines Geoff Romer, James Dennett, Chandler Carruth 2019-01-16 2019-01 P1063R1 WG21  
P1072R3 basic_string::resize_default_init Chris Kennelly, Mark Zeren 2019-01-21 2019-01 P1072R2 SG16, Library Evolution, Library  
P1097R2 Named character escapes R. Martinho Fernandes 2019-01-21 2019-01 P1097R1 SG16, Evolution, Core  
P1099R3 Using Enum Gašper Ažman, Jonathan Müller 2019-01-20 2019-01 P1099R2 Evolution, Core  
P1121R1 Hazard Pointers: Proposed Interface and Wording for Concurrency TS 2 Maged M. Michael, Michael Wong, Paul McKenney, Geoffrey Romer, Andrew Hunter, Arthur O'Dwyer, David S. Hollman, JF Bastien, Hans Boehm, David Goldblatt, Frank Birbacher, Mathias Stearn 2019-01-20 2019-01 P1121R0 Library  
P1130R1 Module Resource Requirement Propagation JeanHeyd Meneide 2019-01-21 2019-01 P1130R0 Evolution  
P1132R3 out_ptr - a scalable output pointer abstraction JeanHeyd Meneide, Todor Buyukliev, Isabella Muerte 2019-01-21 2019-01 P1132R2 Library Evolution, Library  
P1135R2 The C++20 Synchronization Library Bryce Adelstein Lelbach, Olivier Giroux, JF Bastien, Detlef Vollmann 2019-01-15 2019-01 P1135R1 SG1, Library Evolution, Library  
P1135R3 The C++20 Synchronization Library Bryce Adelstein Lelbach, Olivier Giroux, JF Bastien, Detlef Vollmann 2019-01-21 2019-01 P1135R2 Library  
P1139R0 Address wording issues related to ISO 10646 R. Martinho Fernandes 2019-01-21 2019-01   SG16, Core  
P1139R1 Address wording issues related to ISO 10646 R. Martinho Fernandes 2019-01-22 2019-01 P1139R0 SG16, Core  
P1143R1 Adding the constinit keyword Eric Fiselier 2019-01-21 2019-01   P1143R0 Evolution  
P1144R2 Object relocation in terms of move plus destroy Arthur O'Dwyer 2019-01-18 2019-01 P1144R1 Evolution, Library Evolution  
P1152R1 Deprecating volatile JF Bastien 2019-01-20 2019-01 P1152R0 SG1, Evolution, Library Evolution  
P1154R1 Type traits for structural comparison Arthur O'Dwyer, Jeff Snyder 2019-01-19 2019-01 P1154R0 Library Evolution  
P1155R2 More implicit moves Arthur O'Dwyer, David Stone 2019-01-19 2019-01 P1155R1 Evolution  
P1161R2 Deprecate uses of the comma operator in subscripting expressions Corentin Jabot 2019-01-21 2019-01 P1161R1 Core  
P1166R0 What do we need from a linear algebra library? Guy Davidson, Bob Steagall 2019-01-12 2019-01   SG6, SG14, Library Evolution Incubator, Library Evolution  
P1185R1 <=> != == Barry Revzin 2019-01-22 2019-01 P1185R0 Evolution, Core  
P1186R1 When do you actually use <=>? Barry Revzin 2019-01-22 2019-01 P1186R0 Evolution  
P1188R0 Library utilities for <=> Barry Revzin 2019-01-22 2019-01   Library Evolution  
P1202R1 Asymmetric Fences David Goldblatt 2019-01-20 2019-01 P1202R0 SG1  
P1206R1 ranges::to: A function to convert any range to a container Corentin Jabot, Eric Niebler, Casey Carter 2019-01-21 2019-01 P1206R0 Library Evolution  
P1207R1 Movability of Single-pass Iterators Corentin Jabot 2019-01-21 2019-01 P1207R0 Library Evolution  
P1208R3 Source-Code Information Capture Robert Douglas, Corentin Jabot 2018-11-08 2019-01 P1208R2 Library  
P1221R1 Parametric Expressions Jason Rice 2018-10-03 2019-01 P1221R0 Evolution  
P1222R1 A Standard flatset Zach Laine 2019-01-21 2019-01 P1222R0 Library Evolution, Library  
P1223R1 find_backward Zach Laine 2018-10-02 2019-01 P1223R0 Library Evolution  
P1227R1 Signed ssize() functions, unsigned size() functions Jorg Brown 2019-01-21 2019-01 P1227R0 Library Evolution  
P1228R1 A proposal to add an efficient string concatenation routine to the Standard Library Jorg Brown 2019-01-21 2019-01 P1228R0 Library Evolution  
P1243R1 Rangify New Algorithms Dan Raviv 2019-01-16 2019-01 P1243R0 Library  

Variant Visitation V2--Michael Park

Optimising accesses.

Variant Visitation V2

by Michael Park

From the article:

In 2015, I wrote an article titled Variant Visitation which described an implementation strategy for std::visit. The approach involved a matrix of function pointers, and many have raised concerns regarding poor code-gen caused by optimization limitations of function pointers on some compilers.

This post describes the switch-based approach implemented in mpark/variant, and its benchmark results...

C++ moves for people who don’t know or care what rvalues are--Topher Winward

Is it simpler that way?

C++ moves for people who don’t know or care what rvalues are

by Topher Winward

From the article:

When I was first learning about move semantics in C++, I kept reading articles that explained in terms of other scary sounding jargon — lvalues, rvalue references, memcpy, ownership. None of these things are strictly necessary to know about to understand the core of move semantics. (Though, the more you learn about them, the greater your understanding of move semantics will become.)

You may have heard of move semantics, and may know that they’re “faster”, but not why, or even how to move something. (Here “moves” and “move semantics” mean the same thing.)

This article will deliberately simplify or ignore some concepts (like constructors, rvalue references, stack vs heap) to make the core idea of moving easier to follow, so don’t worry if you already know this stuff and see something that isn’t technically correct. I’ll mark clarifications for these with a number. This article is aimed at those writing everyday (non-library) code, with little to no existing understanding of move semantics, to help get over the initial conceptual hurdle...