10 January 2019
It has been a long time! I am excited to announce a new NYC C++ Meetup, coming soon in early January. Arthur O'Dwyer will be presenting; please see below for details on his talk.
Also, please note our NEW LOCATION at 1633 Broadway. Details are below under the "How to Find Us" section.
We look forward to seeing all of you soon.
Arthur presented a version of this talk at CppCon in September 2018.
The last time the keyword `concept` appeared in the C++ Standard's working draft was July 2009, two years before the release of C++11. Now, in January 2019, two years before the expected release of C++2a, the working draft once again contains something called "Concepts" — something very different from what was there before, and — so far — more conservative than the Concepts TS (formerly known as "Concepts Lite").
What should the forward-looking C++ programmer do and know about Concepts in C++2a? Arthur will attempt to puzzle it all out. What is a "Concept" and why should we care? What is the current syntax for defining and using concepts? What compilers support C++2a concepts syntax today, and how do I enable it? How does it affect name-mangling? What are "atomic constraints," "disjunctive clauses," and "subsumption"? What good are value concepts and template concepts? What is the difference between a "requires clause" and a "Requires element"? What is this "terse syntax" we've been hearing about, and why is it controversial? Can I use the "requires" keyword without Concepts?
This material will be presented from an outsider's perspective, which means you can expect Arthur to say at least a few wrong things. The shelf life of this material will be short, as C++2a Concepts are very much in flux right now. In fact, a novel terse syntax (different from the Concepts TS) was merged into the working draft in November 2018, which means this material has already changed since Arthur presented it at CppCon! Anyway, if you want to get caught up on (or in) the Concepts discussion, this might be the place for you.