News

2019-10 pre-Belfast mailing available (1 of 2)

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

 

N4831 2022 Portland Meeting Invitation and Information Erich Keane 2019-10-04 2019-10 WG21
N4832 2021 Kona meeting information Herb Sutter 2019-10-02 2019-10 WG21
N4833 Agenda for Belfast John Spicer 2019-10-04 2019-10 WG21
N4834 WG21 telecon meeting: Pre-Belfast Herb Sutter 2019-10-04 2019-10 WG21
N4835 Working Draft, Standard for Programming Language C++ Richard Smith 2019-10-08 2019-10 N4830 WG21
N4836 Editors’ Report - Programming Languages - C++ Richard Smith 2019-10-08 2019-10 WG21
N4837 2020 Varna Meeting Information Vassil Vassilev 2019-10-08 2019-10 N4825 WG21
P0267R10 A Proposal to Add 2D Graphics Rendering and Display to C++ Michael B McLaughlin, Herb Sutter, Jason Zink, Guy Davidson, Michael Kazakov 2019-10-07 2019-10 P0267R9 SG13, SG16
P0288R5 any_invocable Matt Calabrese, Ryan McDougall 2019-10-07 2019-10 P0288R4 Library
P0443R11 A Unified Executors Proposal for C++ Jared Hoberock, Michael Garland, Chris Kohlhoff, Chris Mysen, Carter Edwards, Gordon Brown, David Hollman, Lee Howes, Kirk Shoop, Eric Niebler 2019-10-07 2019-10 P0443R10 SG1, Library Evolution
P0447R8 Introduction of std::colony to the standard library Matt Bentley 2019-09-05 2019-10 P0447R7 WG21
P0447R9 Introduction of std::colony to the standard library Matt Bentley 2019-10-10 2019-10 P0447R8 WG21
P0549R6 Adjuncts to std::hash Walter E Brown 2019-10-05 2019-10 P0549R5 Library
P0592R3 To boldly suggest an overall plan for C++23 Ville Voutilainen 2019-10-07 2019-10 P0592R2 Evolution, Library Evolution
P0593R5 Implicit creation of objects for low-level object manipulation Richard Smith 2019-10-07 2019-10 P0593R4 Evolution, Core, Library
P0596R1 Side-effects in constant evaluation: Output and consteval variables Daveed Vandevoorde 2019-10-08 2019-10 P0596R0 Evolution
P0642R3 The Concurrent Invocation Library Mingxin Wang, Wei Chen 2019-10-07 2019-10 P0642R2 SG1, Library Evolution, Library
P0792R5 function_ref: a non-owning reference to a Callable Vittorio Romeo 2019-10-06 2019-10 P0792R4 Library
P0849R2 auto(x): decay-copy in the language Zhihao Yuan 2019-10-07 2019-10 P0849R1 Evolution, Library Evolution
P0876R9 fiber_context - fibers without scheduler Oliver Kowalke, Nat Goodspeed 2019-10-06 2019-10 P0876R8 SG1, SG14, Evolution, Library Evolution
P0901R5 Size feedback in operator new Chris Kennelly, Andrew Hunter 2019-10-06 2019-10 P0901R4 Evolution, Library Evolution
P0917R3 Making operator?: overloadable Matthias Kretz 2019-10-07 2019-10 P0917R2 EWGI
P0939R4 Direction for ISO C++ Howard Hinnant, R. Orr, B. Stroustrup, D. Vandevoorde, M. Wong 2019-10-07 2019-10 P0939R3 WG21
P0957R3 PFA: A Generic, Extendable and Efficient Solution for Polymorphic Programming Mingxin Wang 2019-10-07 2019-10 P0957R2 SG7, EWGI, Library Evolution, Library
P1000R3 C++ IS schedule Herb Sutter 2019-10-04 2019-10 P1000R2 WG21
P1030R3 std::filesystem::path_view Niall Douglas 2019-09-26 2019-10 P1030R2 Library Evolution
P1045R1 constexpr Function Parameters David Stone 2019-09-27 2019-10 P1045R0 Evolution
P1046R1 Automatically Generate More Operators David Stone 2019-09-26 2019-10 P1046R0 Evolution, Library Evolution
P1061R1 Structured Bindings can introduce a Pack Barry Revzin, Jonathan Wakely 2019-10-07 2019-10 P1061R0 Evolution
P1068R2 Vector API for random number generation Ilya Burylov, Pavel Dyakov, Ruslan Arutyunyan, Andrey Nikolaev 2019-10-07 2019-10 P1068R1 SG1, SG6
P1072R5 basic_string::resize_default_init Chris Kennelly, Mark Zeren 2019-10-07 2019-10 P1072R4 Library Evolution, Library
P1108R3 web_view Hal Finkel 2019-10-04 2019-10 P1108R2 SG1, SG12, SG13, SG16, LEWGI
P1108R4 web_view Hal Finkel 2019-10-07 2019-10 P1108R3 SG1, SG12, SG13, SG16, LEWGI
P1115R1 Improving the Return Value of Erase-Like Algorithms II: Free erase/erase if Marc Mutz 2019-09-26 2019-10 P1115R0 Library
P1132R6 out_ptr - a scalable output pointer abstraction JeanHeyd Meneide, Todor Buyukliev, Isabella Muerte 2019-10-07 2019-10 P1132R5 Library
P1160R1 Add Test Polymorphic Memory Resource to the Standard Library Attila Fehér, Alisdair Meredith 2019-10-07 2019-10 P1160R0 Library Evolution
P1219R2 Homogeneous variadic function parameters James Touton 2019-10-06 2019-10 P1219R1 Evolution
P1240R1 Scalable Reflection in C++ Daveed Vandevoorde, Wyatt Childers, Andrew Sutton, Faisal Vali, Daveed Vandevoorde 2019-10-08 2019-10 P1240R0 SG7
P1255R5 A view of 0 or 1 elements: views::maybe Steve Downey 2019-10-09 2019-10 P1255R4 Library Evolution
P1315R4 secure_clear Miguel Ojeda 2019-10-07 2019-10 P1315R3 SG1
P1385R3 A proposal to add linear algebra support to the C++ standard library Guy Davidson, Bob Steagall 2019-10-07 2019-10 P1385R2 SG6, SG14, Library Evolution
P1389R1 Standing Document for SG20: Guidelines for Teaching C++ to Beginners Christopher Di Bella, Simon Brand, Michael Adams 2019-10-07 2019-10 P1389R0 SG20
P1401R2 Narrowing contextual conversions to bool Andrzej Krzemieński 2019-10-03 2019-10 P1401R1 Evolution
P1436R2 Executor properties for affinity-based execution Gordon Brown, Ruyman Reyes, Michael Wong, H. Carter Edwards, Thomas Rodgers, Mark Hoemmen 2019-10-08 2019-10 P1436R1 SG1, SG14
P1450R2 Enriching type modification traits Vincent Reverdy 2019-10-06 2019-10 P1450R1 Library Evolution
P1467R2 Extended floating-point types Michał Dominiak, David Olsen 2019-10-07 2019-10 P1467R1 Evolution, Library Evolution
P1468R2 Fixed-layout floating-point type aliases Michał Dominiak, David Olsen, Boris Fomitchev, Sergei Nikolaev 2019-10-07 2019-10 P1468R1 Evolution, Library Evolution
P1494R1 Partial program correctness S. Davis Herring 2019-10-03 2019-10 P1494R0 Evolution, Core, Library Evolution
P1496R0 Formatting of Negative Zero Alan Talbot, Jorg Brown, Victor Zverovich 2019-02-20 2019-10 Library Evolution
P1496R1 Formatting of Negative Zero Alan Talbot, Jorg Brown 2019-10-06 2019-10 P1496R0 Library Evolution, Library
P1609R2 C++ Should Support Just-in-Time Compilation Hal Finkel 2019-10-07 2019-10 P1609R1 EWGI
P1619R1 Functions for Testing Boundary Conditions on Integer Operations Lisa Lippincott 2019-10-04 2019-10 P1619R0 SG6, Library Evolution
P1622R2 Mandating the Standard Library: Clause 32 - Thread support library Daniel Sunderland 2019-10-07 2019-10 P1622R1 Library
P1636R2 Formatters for library types Lars Gullik Bjønnes 2019-10-06 2019-10 P1636R1 Library
P1640R1 Error size benchmarking: Redux Ben Craig 2019-09-29 2019-10 P1640R0 WG21, Direction Group
P1641R1 Freestanding Library: Rewording the Status Quo Ben Craig 2019-09-29 2019-10 P1641R0 SG14, Library Evolution
P1642R1 Freestanding Library: Easy [utilities], [ranges], and [iterators] Ben Craig 2019-09-30 2019-10 P1642R0 SG14, Library Evolution
P1648R2 A Library for Sink Argument Passing Mingxin Wang, Agustín Bergé 2019-10-07 2019-10 P1648R1 Library Evolution, Library
P1673R1 A free function linear algebra interface based on the BLAS Mark Hoemmen, David Hollman, Christian Trott, Daniel Sunderland, Nevin Liber, Siva Rajamanickam, Li-Ta Lo, Graham Lopez, Peter Caday, Sarah Knepper, Piotr Luszczek, Timothy Costa 2019-06-17 2019-10 P1673R0 SG6, SG14, SG19, Library Evolution
P1677R2 Cancellation is not an Error Kirk Shoop, Lisa Lippincott, Lewis Baker 2019-10-06 2019-10 P1677R1 Evolution
P1678R2 Callbacks and Composition Kirk Shoop 2019-10-06 2019-10 P1678R1 Library Evolution
P1679R1 String Contains function Wim Leflere, Paul Fee 2019-10-03 2019-10 P1679R0 Library
P1686R1 Mandating the Standard Library: Clause 27 - Time library Jeff Garland 2019-10-07 2019-10 P1686R0 Library
P1690R1 Refinement Proposal for P0919 Heterogeneous lookup for unordered containers Xiao Shi, Mateusz Pusz, Geoffrey Romer 2019-08-12 2019-10 P1690R0 Library
P1705R1 Enumerating Core Undefined Behavior Shafik Yaghmour 2019-10-07 2019-10 P1705R0 SG12
P1706R1 Programming Language Vulnerabilities for C++ update Michael Wong, Stephen Michel 2019-10-07 2019-10 P1706R0 SG12
P1716R2 ranges compare algorithm are over-constrained Tomasz Kamiński 2019-10-06 2019-10 P1716R1 Library
P1718R1 Mandating the Standard Library: Clause 25 - Algorithms library Marshall Clow 2019-10-07 2019-10 P1718R0 Library
P1719R1 Mandating the Standard Library: Clause 26 - Numerics library Marshall Clow 2019-10-07 2019-10 P1719R0 Library
P1720R1 Mandating the Standard Library: Clause 28 - Localization library Marshall Clow 2019-10-07 2019-10 P1720R0 Library
P1721R1 Mandating the Standard Library: Clause 29 - Input/Output library Marshall Clow 2019-10-07 2019-10 P1721R0 Library
P1722R1 Mandating the Standard Library: Clause 30 - Regular Expression library Marshall Clow 2019-10-07 2019-10 P1722R0 Library
P1723R1 Mandating the Standard Library: Clause 31 - Atomics library Marshall Clow 2019-10-07 2019-10 P1723R0 Library
P1725R1 Modular Topic Design Christopher Di Bella 2019-10-07 2019-10 P1725R0 SG20
P1729R1 Text Parsing Victor Zverovich , Elias Kosunen 2019-10-06 2019-10 P1729R0 Library Evolution
P1731R1 Memory helper functions for containers Ruslan Arutyunyan, Ilya Burylov, Pablo Halpern 2019-10-07 2019-10 P1731R0 Library Evolution
P1739R2 Avoid template bloat for forwarding ranges in combination with 'subrange-y' view adaptors. Hannes Hauswedell (h2 AT fsfe.org) 2019-10-06 2019-10 P1739R1 Library
P1748R1 Fill in [delay.cpp] TODO in D1389 Yehezkel Bernat 2019-10-13 2019-10 P1748R0 SG20

Code analysis with clang-tidy in Visual Studio--Eli Fessler

The safest safety comes from the tools.

Code analysis with clang-tidy in Visual Studio

by Eli Fessler

From the article:

Visual Studio 2019 version 16.4 Preview 1 brings a significant improvement to the C++ code analysis experience: native support for clang-tidy, a Clang-based “linter” tool developed by the LLVM Project that delivers a variety of code improvements such as modernization and standards conformance, static analysis, and automatic formatting...

ACCU 2020 Call for Proposals

The ACCU 2020 is now putting together its program, and they want you to speak on C++. The ACCU has strong C++ tracks, though it is not a C++-only conference. If you have something to share, check out their

Call for Proposals

by the ACCU

About the conference:

Historically, ACCU has a lot of C++ and C content, and is proud of that: ACCU is the foremost annual conference for people interested in C++ and C, at least in and around the UK. But it is not just a C++ and C conference, ACCU is about programming in whatever language people are using, with whatever tools and processes people are using: D, Chapel, Java, Kotlin, C#, F#, Groovy, Rust, Go, Python, Ruby, Lisp, to name just a few programming languages about which there have been sessions at ACCU conferences. Git, Mercurial, CMake, Meson, TDD, BDD, allthese tools and techniques have been the focus of sessions at ACCU. The ACCU Conference is looking for sessions that will be interesting to people who create software.

The ACCU Conference is put on by ACCU (https://accu.org), but is open to anyone who wishes to be there either as a presenter or an attender.

The Call for Papers lasts for about 3 weeks and will close on Friday 2019-10-25 23:59+01:00.

CppDepend v2019.3 Released including support for the embedded projects.

We are happy to inform you that CppDepend v2019.3 has been released and is now available for download! CppDepend allows architects and developers to analyze C and C++ code base, customizing your own coding rules, and facilitate refactoring and migration.

CppDepend v2019.3

About the release:

CppDepend v2019.3 includes important updates:

  • Advanced support for Qt projects,
  • Out of the box support for embedded projects (Arm Studio, Code Composer Studio, Renesas studio,...)
  • Out of the box support for Eclipse projects,
  • (Improvement) Many bug fixes and improvements


Download and enjoy the new version of CppDepend now by clicking here.

Cppcon 2019 Milestone | New Home | Trip Reports--Jon Kalb

Many things happened.

Milestone | New Home | Trip Reports

by Jon Kalb

From the article:

CppCon 2019 was the first year in our new home at the Gaylord Rockies in Aurora, Colorado.

Long before I’d ever done it, I told people that I thought that moving a conference is almost as much work as starting one from scratch. Now that I have moved a conference, I’ve learned that started a conference from scratch is actually easier than moving that conference after it has been growing in one location for five years...

Join the Maryland C++ User Group

If you live in the area.

Join the Maryland C++ User Group

From the article:

After looking for and failing to find a C++ user group in Maryland, I decided to start one. If you live in the Baltimore/DC/NoVA area, use C++ for work or pleasure, and are interested in attending monthly-ish meetings related to C++, please join the meetup group at https://meetup.com/CppMaryland/. Topics for discussion will include current (C++11/14/17) features, the upcoming C++20 standard, build tools, standard containers and algorithms, design patterns, and pretty much anything else that might benefit a C++ developer...

Alternatives to C++ Function Pointers in SYCL using Function Objects -- Georgi Mirazchiyski

This blog post offers an interesting solution for replacing function pointers with function objects and lambdas.

Alternatives to C++ Function Pointers in SYCL using Function Objects

by Georgi Mirazchiyski

From the article:

Function Pointers are a feature of the C language and so form part of the C++ standard. As such, a function pointer allows the following behavior:

    "A pointer to a function can be passed as a parameter to another function"

In C++, especially in modern C++, function pointers are a legacy feature from the C language but they still exist in some code bases.

SYCL enables single source development where template functions can contain both host and device code to construct complex algorithms that use acceleration. However, SYCL does not provide support for function pointers since this is a limitation posed by the design of OpenCL v1.2 which is the basis of the current SYCL v1.2.1 definition.

But there is good news, we can use modern C++ to implement a solution that can be used with SYCL. SYCL is built with C++11 (and onward depending on the implementation), meaning features like anonymous functions known as "lambdas" can be used with little to zero overhead. Even going back to C++98/03 it is possible to use function objects defined as either structs or classes, and additionally, you can template your operation (the computation logic) to provide a generic way to consume the function objects or lambdas.