2016-10 Pre-Issaquah mailing available

The 2016-10 mailing of new standards papers is now available.

NOTE: A number of these papers have already been publicized on this blog. This is the complete list including ones not previously publicized.

 

2016-10 pre-Issaquah
N4607 Toronto Meeting Information Michael Wong 2016-07-18 2016-10 WG21
N4608 PL22.16/WG21 draft agenda: 7-12 Nov 2016, Issaquah, WA, US Clark Nelson 2016-07-21 2016-10 WG21
N4609 Business Plan and Convener's Report Herb Sutter 2016-08-11 2016-10 WG21
N4610 Working Draft, Extensions to C++ for Modules Gabriel Dos Reis 2016-10-16 2016-10 WG21
N4611 Editor's Report for the Modules TS Gabriel Dos Reis 2016-10-16 2016-10 WG21
N4612 Working Draft, C++ extensions for Networking Jonathan Wakely 2016-10-17 2016-10 WG21
N4613 Networking TS - Editor's Report Jonathan Wakely 2016-10-17 2016-10 WG21
N4614 WG21 telecon meeting: Pre-Issaquah Herb Sutter 2016-10-01 2016-10 WG21
P0009R3 Polymorphic Multidimensional Array View H. Carter Edwards, Bryce Lelbach, Christian Trott, Mauro Bianco, Robin Maffeo, Ben Sander 2016-10-14 2016-10 P0009R2 Library Evolution
P0019R3 Atomic View H. Carter Edwards, Hans Boehm, Olivier Giroux, James Reus 2016-10-14 2016-10 P0019R2 Library Evolution, Concurrency
P0020R3 Floating Point Atomic View H. Carter Edwards, Hans Boehm, Olivier Giroux, JF Bastien, James Reus 2016-10-14 2016-10 P0020R2 Library Evolution, Concurrency
P0022R2 Proxy Iterators for the Ranges Extensions Eric Niebler 2016-10-17 2016-10 P0022R1 Library
P0037R3 Fixed-point real numbers John McFarlane, Michael Wong 2016-10-17 2016-10 P0037R2 Numerics, SG14, Library Evolution
P0051R2 C++ generic overload function Vicente J. Botet Escriba 2016-10-13 2016-10 P0051R1 Library Evolution
P0057r6 Wording for Coroutines Gor Nishanov 2016-10-16 2016-10 P0057R5 Core, Library
P0059R2 Add rings to the Standard Library Guy Davidson, Arthur O'Dwyer, Joe Best-Rotheray 2016-10-14 2016-10 P0059R1 SG14, Library Evolution
P0098R1 Towards Implementation and Use of memory order consume Paul E. McKenney, Torvald Riegel, Jeff Preshing, Hans Boehm, Clark Nelson, Olivier Giroux, Lawrence Crowl 2016-01-04 2016-10 P0098R0 Concurrency
P0099R1 A low-level API for stackful context switching Oliver Kowalke, Nat Goodspeed 2016-10-16 2016-10 P0099R0 Concurrency
P0165R3 C++ Standard Library Issues to be moved in Issaquah Marshall Clow 2016-10-17 2016-10 P0165R2 Library
P0187R1 Proposal/Wording for Bit-field Default Member Initializer Syntax Andrew Tomazos 2016-06-28 2016-10 P0187R0 Evolution
P0194R2 Static reflection Matúš Chochlík, Axel Naumann, David Sankel 2016-10-15 2016-10 P0194R1 Reflection, Evolution
P0195R1 Modernizing using-declarations Robert Haberlach 2016-10-15 2016-10 P0195R0 Core
P0196R2 Generic none() factories for Nullable types Vicente J. Botet Escriba 2016-10-12 2016-10 P0196R1 Library Evolution
P0201R1 An indirect value-type for C++ Jonathan Coe 2016-10-13 2016-10 P0201R0 Library Evolution
P0214R2 Data-Parallel Vector Types & Operations Matthias Kretz 2016-10-17 2016-10 P0214R1 Library Evolution
P0233R2 Hazard Pointers: Safe Reclamation for Optimistic Concurrency Maged M. Michael, Michael Wong, Paul McKenney, Arthur O'Dwyer 2016-10-17 2016-10 P0233R1 Concurrency, SG14, Library Evolution
P0237R3 Wording for fundamental bit manipulation utilities Vincent Reverdy, Robert J. Brunner 2016-10-17 2016-10 P0237R2 Library Evolution, SG14, Numerics
P0249R2 Input Devices For 2D Graphics Brett Searles, Michael McLaughlin, Jason Zink 2016-10-07 2016-10 P0249R1 SG13
P0252R2 Operator Dot Wording Bjarne Stroustrup, Gabriel Dos Reis 2016-10-16 2016-10 P0252R1 Evolution, Core
P0261R1 C++ Distributed Counters Lawrence Crowl 2016-10-13 2016-10 P0261R0 Concurrency
P0262R1 A Class for Status and Optional Value Lawrence Crowl, Chris Mysen 2016-10-15 2016-10 P0262R0 Evolution
P0279R1 Read-Copy Update (RCU) for C++ Paul E. McKenney 2016-08-25 2016-10 P0279R0 Concurrency
P0290R1 apply() for synchronized_value<T> Anthony Williams 2016-06-23 2016-10 P0290R0 Concurrency
P0293R0 Template deduction for nested classes S. Davis Herring 2016-10-14 2016-10 Evolution
P0315R1 Lambdas in unevaluated context Louis Dionne 2016-08-01 2016-10 P0315R0 Evolution
P0317R1 Directory Entry Caching for Filesystem Beman Dawes 2016-10-15 2016-10 P0317R0 Library
P0320R1 Thread Constructor Attributes Vicente J. Botet Escriba 2016-10-12 2016-10 P0320R0 Library Evolution, Concurrency
P0323R1 A proposal to add a utility class to represent expected object (Revision 3) Vicente J. Botet Escriba 2016-10-12 2016-10 P0323R0 Library Evolution
P0327R1 Product types access Vicente J. Botet Escriba 2016-10-16 2016-10 P0327R0 Evolution, Reflection, Library Evolution
P0329R1 Designated Initialization Wording Tim Shen, Richard Smith 2016-09-26 2016-10 P0329R0 Core
P0338R1 C++ generic factories Vicente J. Botet Escriba 2016-10-12 2016-10 P0338R0 Library Evolution
P0339R1 polymorphic_allocator<void> as a vocabulary type Pablo Halpern, Dietmar Kühl 2016-10-15 2016-10 P0339R0 Library Evolution
P0347R1 Simplifying simple uses of <random> R. "Tim" Song, Melissa O'Neill 2016-10-16 2016-10 P0347R0 Numerics, Library Evolution
P0353R1 Unicode Friendly Encoding Conversions for the Standard Library Beman Dawes 2016-10-14 2016-10 P0353R0 Library Evolution
P0355R1 Extending <code><chrono></code> to Calendars and Time Zones Howard Hinnant 2016-10-16 2016-10 P0355R0 Library Evolution
P0356R1 Simplified partial function application Tomasz Kamiński 2016-10-13 2016-10 P0356R0 Library Evolution
P0357R1 reference_wrapper for incomplete types Tomasz Kamiński 2016-09-29 2016-10 P0357R0 Library Evolution
P0361R1 Invoking Algorithms asynchronously Hartmut Kaiser, Thomas Heller, Bryce Adelstein Lelbach, John Biddiscombe, Michael Wong 2016-10-15 2016-10 P0361R0 Concurrency, SG14, Library Evolution
P0370R2 Ranges TS Design Updates Omnibus Casey Carter, Eric Niebler 2016-10-17 2016-10 P0370R1 Library
P0381R1 Numeric Width John McFarlane, Michael Wong 2016-10-17 2016-10 P0381R0 Numerics, SG14
P0385R1 Static reflection: Rationale, design and evolution Matúš Chochlík, Axel Naumann, David Sankel 2016-10-15 2016-10 P0385R0 Reflection, Evolution
P0403R0 Literal suffixes for basic_string_view Marshall Clow 2016-09-13 2016-10 Library Evolution
P0406R1 Intrusive Containers Hal Finkel 2016-10-17 2016-10 P0406R0 Library Evolution
P0409R1 Allow lambda capture [=, this] Thomas Koeppe 2016-10-11 2016-10 P0409R0 Evolution
P0412R0 Benchmarking primitives Mikhail Maltsev 2016-07-05 2016-10 Evolution, Library Evolution
P0414R1 Merging shared_ptr changes from Library Fundamentals to C++17 Jonathan Wakely 2016-10-06 2016-10 P0414R0 Library
P0415R0 Constexpr for std::complex Antony Polukhin 2016-08-10 2016-10 Library Evolution
P0416R1 Operator Dot (R3) Bjarne Stroustrup, Gabriel Dos Reis 2016-10-16 2016-10 P0416R0 Evolution, Core
P0418R1 Fail or succeed: there is no atomic lattice JF Bastien 2016-08-02 2016-10 P0418R0 Concurrency, Library
P0421R0 Static class constructor Mariusz Moczala 2016-09-14 2016-10 Evolution
P0422R0 Out-of-Thin-Air Execution is Vacuous Paul E. McKenney, Alan Jeffrey, Ali Sezgin, Tony Tye 2016-07-27 2016-10 Concurrency
P0423R0 Variable templates for Networking TS traits Jonathan Wakely 2016-08-04 2016-10 Library
P0424R0 Reconsidering literal operator templates for strings Louis Dionne 2016-08-15 2016-10 Evolution
P0426R0 Constexpr for std::char_traits Antony Polukhin 2016-08-10 2016-10 Library Evolution
P0428R0 Familiar template syntax for generic lambdas Louis Dionne 2016-09-08 2016-10 Evolution
P0429R0 A Standard flat_map Zach Laine 2016-08-31 2016-10 Library, Library Evolution
P0430R0 File system library on non-POSIX-like operating systems Jason Liu, Hubert Tong 2016-09-12 2016-10 Library, Library Evolution
P0432R0 Implicit and Explicit Default Comparison Operators David Stone 2016-09-18 2016-10 Evolution
P0433R0 Toward a resolution of US7 and US14: Integrating template deduction for class templates into the standard library Mike Spertus, Walter E. Brown 2016-10-16 2016-10 Library Evolution, Library, Core
P0434R0 Portable Interrupt Library Brett Searies 2016-10-09 2016-10 SG13
P0435R0 Resolving LWG Issues re common_type Walter E. Brown 2016-10-14 2016-10 Library
P0436R0 An Extensible Approach to Obtaining Selected Operators Walter E. Brown 2016-10-10 2016-10 Evolution
P0437R0 Numeric Traits for the Next Standard Library Walter E. Brown 2016-10-14 2016-10 Numerics, Library Evolution
P0438R0 Toward a <random> Technical Specification Walter E. Brown 2016-10-05 2016-10 Numerics, Library Evolution
P0439R0 Make memory_order a scoped enumeration Jonathan Wakely 2016-10-06 2016-10 Concurrency, Library Evolution
P0440R0 Floating Point Atomic View H. Carter Edwards, Hans Boehm, Olivier Giroux, JF Bastien, James Reus 2016-10-14 2016-10 Concurrency, Library Evolution
P0441R0 Ranges: Merging Writable and MoveWritable Casey Carter, Eric Niebler 2016-10-17 2016-10 Library Evolution, Library
P0443R0 A Unified Executors Proposal for C++ Jared Hoberock, Michael Garland, Chris Kohlhoff, Chris Mysen, Carter Edwards 2016-10-17 2016-10 Concurrency, SG14, Library Evolution
P0444R0 Unifying suspend-by-call and suspend-by-return Nat Goodspeed 2016-10-14 2016-10 Concurrency, Evolution
P0445R0 SG14: Low Latency Meeting Minutes 2016/09/21-2016/10/13 Michael Wong 2016-10-16 2016-10 SG14
P0446R0 SG5: Transactional Memory (TM) Meeting Minutes 2016/07/18-2016/10/10 Michael Wong 2016-10-16 2016-10 SG5
P0447R0 Introduction of std::colony to the standard library Matthew Bentley 2016-10-16 2016-10 Library Evolution, SG14
P0448R0 A strstream replacement using span<charT> as Peter Sommerlad 2016-10-14 2016-10 Library Evolution, Library
P0451R0 Future-Proofing Parallel Algorithms Exception Handling Bryce Adelstein Lelbach, Alisdair Meredith 2016-10-14 2016-10 Concurrency, Library Evolution, Library
P0452R0 Binary transform_reduce(): The Missing Overload Bryce Adelstein Lelbach 2016-10-14 2016-10 Concurrency, Library Evolution, Library
P0454R0 Wording for a Minimal mdspan Bryce Adelstein Lelbach, H. Carter Edwards 2016-10-10 2016-10 Library Evolution, Library
P0457R0 String Prefix and Suffix Checking Mikhail Maltsev 2016-10-09 2016-10 Library Evolution
P0458R0 Checking for Existence of an Element in Associative Containers Mikhail Maltsev 2016-10-09 2016-10 Library Evolution
P0459R0 C++ Extensions for Ranges, Speculative Combined Proposal Document Eric Niebler, Casey Carter 2016-10-15 2016-10 Library Evolution
P0460R0 Flat containers wording Sean Middleditch 2016-10-15 2016-10 Library Evolution
P0461R0 Proposed RCU C++ API Paul E. McKenney, Maged Michael, Michael Wong, Isabella Muerte, Arthur O'Dwyer 2016-10-16 2016-10 Concurrency
P0462R0 Marking memory order consume Dependency Chains Hans Boehm, Clark Nelson, Olivier Giroux, Lawrence Crowl, JF Bastien, Micheal Wong 2016-10-13 2016-10 Concurrency
P0463R0 endian, Just endian Howard Hinnant 2016-10-16 2016-10 Library Evolution
P0464R0 Revisiting the meaning of "foo(ConceptName,ConceptName)" Tony Van Eerd, Botond Ballo 2016-10-11 2016-10 Evolution
P0465R0 Procedural Function Interfaces Lisa Lippincott 2016-10-16 2016-10 Evolution
P0466R0 Layout-compatibility and Pointer-interconvertibility Traits Lisa Lippincott 2016-10-15 2016-10 Library Evolution
P0467R0 Iterator Concerns for Parallel Algorithms Alisdair Meredith 2016-10-13 2016-10 Concurrency, Library
P0468R0 A Proposal to Add an Intrusive Smart Pointer to the C++ Standard Library Isabella Muerte 2016-10-15 2016-10 SG14, Library Evolution
P0469R0 Sample in place R. "Tim" Song 2016-10-17 2016-10 Library Evolution
P0471R0 Single argument std::inserter David Sankel 2016-10-14 2016-10 Library Evolution
P0472R0 Move 'std::monostate' to <utility> David Sankel 2016-10-14 2016-10 Library Evolution
P0473R0 + for std::vector concatenation David Sankel 2016-10-13 2016-10 Library Evolution
P0474R0 Comparison in C++: Basic Facilities Lawrence Crowl 2016-10-15 2016-10 Evolution
P0475R0 LWG 2511: guaranteed copy elision for piecewise construction Jonathan Wakely 2016-10-14 2016-10 Library
P0476R0 Bit-casting object representations JF Bastien 2016-10-16 2016-10 Library Evolution, Library
P0477R0 std::monostate_function<> Matt Calabrese 2016-10-14 2016-10 Library Evolution
P0478R0 Template argument deduction for non-terminal function parameter packs Bruno Manganelli, Michael Wong, Simon Brand 2016-10-16 2016-10 Evolution
P0479R0 Attributes for Likely and Unlikely Branches Clay Trychta 2016-10-16 2016-10 Evolution, SG14
P0480R0 Explicit type checking with structured bindings Ville Voutilainen 2016-10-15 2016-10 Evolution
P0481R0 Bravely Default Tony Van Eerd 2016-10-15 2016-10 Evolution
P0482R0 char8_t: A type for UTF-8 characters and strings Tom Honermann 2016-10-17 2016-10 Evolution, Library Evolution
P0483R0 Extending Memory Management Tools, And a Bit More Patrice Roy 2016-10-15 2016-10 Library Evolution
P0484R0 Enhancing Thread Constructor Attributes Patrice Roy, Billy Baker, Arthur O'Dwyer 2016-10-16 2016-10 Library Evolution, Concurrency
P0485R0 Amended rules for Partial Ordering of function templates Bruno Manganelli, Michael Wong, Simon Brand 2016-10-16 2016-10 Evolution, Core
P0486R0 for_each_iter algorithm proposal Ildus Nezametdinov, Patrice Roy, 2016-10-15 2016-10 Library Evolution
P0487R0 Fixing operator>> (basic_istream&, CharT*) (LWG 2499) Zhihao Yuan 2016-10-17 2016-10 Library
P0488R0 WG21 Working paper: NB Comments, ISO/IEC CD 14882 Barry Hedquist 2016-10-18 2016-10 WG21
P0489R0 WG21 Working paper: Late Comments on CD 14882 Barry Hedquist 2016-10-18 2016-10 WG21

 

CppCast Episode 75: Robotics with Jackie Kay

Episode 75 of CppCast the only podcast for C++ developers by C++ developers. In this episode Rob and Jason are joined by Jackie Kay from Marble to discuss the use of C++ in the Robotics industry and some of the unique challenges in Robotics development.

CppCast Episode 75: Robotics with Jackie Kay

by Rob Irving and Jason Turner

About the interviewee:

After spending her childhood wanting to become a novelist, Jackie switched over from writing stories to writing code during college. She graduated from Swarthmore College in 2014 with a Bachelor's in Computer Science and went on to work at the Open Source Robotics Foundation for two years, supporting Gazebo, a physics simulator for robotics R&D, and ROS, an open source application framework for robotics development. She recently started as an early employee at Marble in San Francisco, a startup working on autonomous delivery.

Jackie was a speaker at CppCon 2015 and 2016 and a volunteer at C++ Now 2016 and frequently attends the Bay Area ACCU meetups. Her hobbies include rock climbing, travelling, and reading (books, not just blog posts).

Visiting variants using lambdas (2: recursive variants) -- Vittorio Romeo

The article addresses the problem of lambda-based `std::variant` and `boost::variant` recursive visitation. Starting from the definition of a "recursive variant", it shows the concept and implementation behind a `make_recursive_visitor` variadic function that can be used to create "local" visitors by using lambdas.

visiting variants using lambdas - part 2

By Vittorio Romeo

From the article:

A "recursive" variant is a variant which can contain itself, and can be used to represent recursive structures. [...] Bringing algebraic data types from the functional programming world into C++ isn't enough - we're also going to adopt another powerful construct: the Y Combinator. [...] Now we can put everything together to finally visit a recursive variant using lambdas!

Tutorial: Emulating strong/opaque typedefs in C++--Jonathan Müller

Who would like this feature?

Tutorial: Emulating strong/opaque typedefs in C++

by Jonathan Müller

From the article:

Last week, I’ve released my type_safe library. I described it’s features in the corresponding blog post but because the blog post got rather long, I couldn’t cover one feature: strong typedefs.

Strong or opaque typedefs are a very powerful feature if you want to prevent errors with the type system - and as I’ve been advocating for, you want that. Unlike “normal” typedefs, they are a true type definition: they create a new type and allow stuff like overloading on them and/or prevent implicit conversions.

4th Spanish C++ conference using std::cpp 2016 (spanish)

At the 24th of November at Leganés in Madrid in Spain, for the fourth year in a row the one day event using std::cpp will gather professional developers in a series of talks devoted exclusively to C++. 

using std::cpp

This year using std::cpp includes the following talks:

  • C++17 is (almost) here. J. Daniel García (ARCOS Lab, University Carlos III), member of ISO C++ standards committee and associate professor in Computer Architecture.
  • Get your types to work. Software developer and contributor of several Boost libraries (example, Boost multi-index).
  • C++ and much more. An overview to the available libraries univers. Martin Knoblauch (Indizen Technologies), a software developer in the finance sector.
  • Test Driven Development in C++. Raúl Huertas (TCP Sistemas), a software developer with long background in the telecom business.
  • Using C++ in safety critical embedded systems for railways. Ion Gaztañaga (CAF), another Boost contributor (example, Boost Interprocess).
  • At a Matlab breakdown... Save me C++! Javier Garcia-Blas (ARCOS Lab, University Carlos III), visiting professor in Computer Architecture.
  • Static and dynamic polymorphism in C++11: Flexibility versus performance?. J. Daniel Garcia (ARCOS Lab, University Carlos III), member of ISO C++ standards committee and associate professor in Computer Architecture.
  • Using templates in C++ to design and implement. Jose Caicoya (Hotel Beds), software developer with background in real-time systems, finance and, more recently, hotel reservation systems.
  • Distributed systems: How to connect your real-time applications. Jaime Martin (eProsima), developer of an open source DDS impelementation.
  • Developing an reflection system for C++14. Manu Sanchez (ByTech), software developer and metaprogrammer.

About using std::cpp

The using std::cpp event has been happening every year since 2013 in University Carlos III (Leganes, Madrid, Spain), where every year around 200 developers have gathered to share experiences in using C++ for professional software develpment.

The event is organized by ARCOS Lab (University Carlos III), a research group focused in applications of high performance computing to multiple domains. It is also sponsored by Indizen Technologies.

Visiting variants using lambdas (1) - - Vittorio Romeo

The article covers a technique that allows variant types (both `std::variant` and `boost::variant`) to be visited using lambdas, without having to explicitly create a functor.

visiting variants using lambdas - part 1

By Vittorio Romeo

From the article:

Visiting a variant is usually done by writing a visitor struct/class outside of the scope where the variant is actually being visited. [...] It is possible to build such an object locally in the call site [...] by implementing something similar to `std::overload`.

The “unsigned” Conundrum--Tony “Bulldozer00” DaSilva

Are you clear with unsigned?

The “unsigned” Conundrum

by Tony “Bulldozer00” DaSilva

From the article:

A few weeks ago, CppCon16 conference organizer Jon Kalb gave a great little lightning talk titled “unsigned: A Guideline For Better Code“. Right up front, he asked the audience what they thought this code would print out to the standard console:

Even though -1 is obviously less 1, the program prints out “a is not less than b“. WTF?