WG21 2017-07 Toronto Record of Discussion

ISO/IEC JTC1 SC22 WG21 N4690 — 2017-08-03

Patrice Roy, Patrice.Roy@USherbrooke.ca

July 10 - July 15, 2017 - Toronto, ON, Canada

Chair: Clark Nelson

1. Opening activities (Monday 9:00)

1.1 Opening comments, welcome from host (PL22.16)

Wong welcomes everyone, and thanks sponsors. He reminds people of a social event set for Wednesday and for which registration is required.

1.2 Meeting guidelines (PL22.16)

Every participant is responsible for understanding and abiding by the INCITS Antitrust Guidelines and Patent Policy and the ISO Code of Conduct.

1.3 Membership, voting rights, and procedures for the meeting (PL22.16)

The chair requests that prospective PL22.16 members inform the chair (Nelson) or vice-chair (Spicer) that they are present.

Spicer explains the attendance sheet rules and requests people adding themselves print their names clearly.

Sutter explains that the two-stage plenary session that was the norm in previous meetings has been fused into a single plenary session scheduled for Saturday, 8:30 up to 14:00 at most. There will be no plenary session on Friday afternoon.

Meredith expresses concern that 8:00 PM Friday deadline is a too late. Sutter states there is room to adjust that deadline in future meetings. Nelson expresses hope that motions will be displayed on the voting page before the deadline for the most part.

1.4 Introductions

Representatives from the following countries:

Canada Finland France Poland Russia Spain Switzerland UK US

1.5 Agenda review and approval (PL22.16 motion)

Agenda is in a revision of N4662, posted on the wiki.

Clow moved to adopt the agenda, Dawes seconded.

Approved by unanimous consent (for both WG21 and .16 polls).

1.6 Editor's reports, approval of working drafts

Document Editor's Report Prospective WD
C++20 Standard N4661 N4659
Modules TS N4668 N4667
Coroutines TS N4650 N4649
Ranges TS N4672 N4671
Networking TS N4657 N4656
Parallelism TS N4670 N4669
Concepts TS N4675 N4674

Approved by unanimous consent.

1.7 Approval of the minutes of the previous meetings (PL22.16 motion)

Meeting Minutes
WG21 Kona N4654
PL22.16 Kona N4655
WG21 pre-Toronto administrative telecon N4676

Adlestein-Lelbach moved to accept the PL22.16 Kona minutes, Alday seconded. Approved by unanimous consent.

WG21 minutes approved by unanimous consent.

2. Liaison reports, and WG21 study group reports (see pre-meeting WG21 telecon minutes)

Already summarized in the pre-meeting minutes

3. WG progress reports and work plans for the week (Core, Evolution, Library, Library Evolution)

Already summarized in the pre-meeting minutes

4. New business requiring action by the committee

Nothing was mentioned for this item

5. Organize working groups and study groups, establish working procedures

(Clarify rooms available for evening sessions)

6. WG and SG sessions

The WG and SG chairs must arrange for any proposals to be written up in the form of a motion, and made available by 8:00 PM Friday.

7. Review of the meeting (Saturday 8:30 AM)

WG and SG status and progress reports. Presentation and discussion of proposals to be considered for consensus adoption by full WG21.

Sutter reminds members of the rules for transcripts and other ways of contributing to social media, e.g. not while the plenary session is ongoing

Sutter describes the voting procedures, including voting rights

Sutter informs members that today is Nelson's last meeting as WG21 chair >applause<

Spicer is expected to chair starting with the Albuquerque meeting. It seems probable that Finkel will serve as co-chair. This remains to be confirmed

SG5: Transactional memory (Wong)

We continue to meet regularly and are currently discussing the effects of shared_ptr inside a transaction because of how often shared_ptr exists in real code.

The central question we have been exploring is how fast can atomics and smart ptrs be outside a transaction if they have to interact with a transaction. One possible solution to make transactional shared_ptr safe to use is to make non-transactional shared_ptr (code outside of transactions) be converted into a mini-transactional section (just containing the shared_ptr). This way transactional shared_ptr knows how to interact with them

SG6: Numerics (Brown, replacing Crowl)

Thanks those who came. Looked at five papers, rejected one, sent one to LWG (to be processed at ulterior meetings), sent others back to authors with feedback.

SG7: Reflection/Compile-Time Programming (Carruth)

Held an evening session. Looked at three things: expanding basic reflection / introspection, high-level metaprogramming, and a primary use-case for code injection in the library through Sutter's metaclass proposal.

Gave feedback to authors. No paper was sent to any Working Group. Encouragement given to Sutter to pursue the metaclass work.

Some papers not discussed have finished progressing through LEWG and are going to LWG

SG10: Feature test (Nelson)

Sutter brought a paper to EWG to reconsider how SG10 recommandations are handled. Essentially, SG10 plans to "take it slow". Moving in direction to make WG21 vote on the actual document. No radical changes during this meeting

Q: support for requiring feature-test macro?

Nelson: not for the moment

Tong: the straw polls page referenced no feature-test document to approve

Nelson: that was intentional; we weren't ready to take such a step at this meeting

Sutter: consensus is to leave it as a standalone document

Voutilainen: EWG does not want to reconsider its approach at this time

Nelson: should WG21 approve this in plenary, we need more work to be done in working groups first. There is no motion to move today

SG12: Undefined and unspecified behavior (Dos Reis)

Met on Thursday afternoon. We had Stephen Michell, chair of WG23, come and explain the work they do. We looked at how SG12 could establish collaboration work with WG23 and bring sensible recommendations with respect to C++. We will try to have colocated meetings starting with the Albuquerque meeting

Today, WG23 shows "this is bad code, don't do this". SG12 looks to guide users in writing better code and provide guidance for this. We want to give C++ a more accurate image to WG23.

We looked at Lippincott's paper on assertion semantics.

We looked at a paper on memcpy() and object lifetime, and were Ok with its direction, so EWG will have a paper on this topic at Albuquerque

SG14: Games & low latency (Wong)

SG14 holds monthly telecon calls. Lately, we've addressed slot-maps, fixed point, ring span, hazard pointers, RCU, thread attributes, intrusive containers, colony and stack, heterogeneous computing, etc.

We have people everywhere in various subcommittees. We hope to have some papers get into C++20

SG1: Concurrency (Boehm)

We met all week, and discussed the Concurrency TS in order to get it into C++20. We ended up moving small pieces

We discussed latches and barriers. We're moving latches as is, but agreed that a part of the barrier design will need to be revisited. We hope to bring it into C++20

We moved Meredith's paper for atomic smart pointers. The feature is controversial but we agreed the proposal is an improvement. This is being renamed, and deprecates the old facilities

The future.then() feature was expected to be controversial but in the end it wasn't, as the vote was very much against. Everyone wants it, but everyone agrees it needs more work. There are pieces that are ready and will move forward

We talked a lot about the memory model. We had academic papers proving it correct on PowerPC where it actually wasn't. However, it turns out there are good architectural reasons for them to do what they do on PowerPC

There are plans to strenghten memory_order_seq_cst fences and make them more usable

Nothing will be moved today for Parallellism TS v2

The Concurrency TS v2 does not yet exist but we talked about it. We have a variant of joining_thread with collaborative cancellation; we think it's missing something and are trying to convince the author of that >laughs!<

One high-level technique we hope to advertise to programmers has been brought up

Stackful coroutines were discussed, as well as ways to better preserve SG1 history and avoid repeating ourselves

Thanks the minute-takers >applause<

Q: does the paper about stackful coroutines target the Coroutines TS?

Boehm: it would be a different TS. There was prior consensus that they do different things from what the stackless coroutines do

Evolution (Voutilainen)

We did some patching of our existing functionality for template argument deduction

There was no consensus for argument binding

There were comments on the coroutines TS

For modules, we approved an interface syntax. There was no consensus about partitions. Evolution supports the insertion of a word at the top to identify modules. Issues were raised

We had design consensus on concepts, and continue exploration on how to get an abbreviated syntax. Many thanks to Core for getting the wording ready >applause<

There are forthcoming bits: we are moving forward with type-constrained lambdas, new uses of template. We want to make some forms on new valid in constant expressions

We talked about Lippincott's paper on assertions

Maurer: the modifications to modules are on issues list?

Voutilainen: yes

Library Evolution (Yasskin)

Bad news: we did not get through about 40 papers. I will set-up a spreadsheet to get reviews in between meetings

We missed two papers due to inappropriate audience; they were sent to the wrong working group

We finished NB comments on coroutines, ranges and networking

We looked at a paper for integrating contracts into the library

We have paper for integrating concepts into the library

We approved two DRs against C++17, and started removing deprecated features

SIMD, static reflection and atomic_shared_ptr were forwarded to LWG

We are getting closer to a 2D graphics TS

We reviewed Sutter's spaceship operator, several containers (thanks SG14), as well as several papers on text and Unicode

My time as chair of LEWG is almost done. Winters should chair LEWG starting with the Jacksonville meeting

Core (Miller)

Core has been meeting intensively all week. We did almost all review material instead of issues processing. There will be no ready issues for Albuquerque, but there might be some tentatively ready issues following telecons we will hold in the meantime

TS-related material proposals for C++20

There were Core-related NB comments for PDTS ballot of Coroutines. Overall motions on this are to be handled by LWG

We reviewed a requested change for the range-based for

We spent time on the Parallelism TS's vector wavefront policies

C++20 material not moved this meeting includes conversions to arrays of unknown bound (progressing well, expected for Albuquerque)

Voutilainen: does it need to return to Evolution?

Miller: no

Being able to use the template keyword in unqualified ids, to avoid the compiler seeing '<' as a less-than symbol. Spicer and Smith are working on a different approach, approved by EWG. This should not affect existing well-formed programs

Vandevoorde mentions the following case:


with f a function of type F and x a value of class type X, which could today be valid in the presence of an overloaded operator like:

int operator<(F&, X);

whereas with the new rule it will now be invalid.

We looked at lambdas in unevaluated contexts. We do not have a conclusion yet

Meredith: is it correct that we're accepting the for loop from the ranges TS, but we rejected doing so for the coroutines TS as it would have been too soon?

Miller: I was not involved in the other session. I do not know the answer

Voutilainen: I suppose we need to do a DR

C++20 motions include default member initialization for bitfields, fixing const-qualified pointer to members, allowing lambda capture of [=,this], comma omission and deletion in macro expansion, designated initializers (a subset only of the similar C facility, due to differences in the way objects are initialized), template parameter syntax for generic lambdas, constructor template argument deduction vs initializer_list constructors (copy, not wrap, following EWG recommendation in Kona), and concepts

We will be moving integration of the modified concepts TS today

We will have a PDTS motion for modules with a single substantive change: require a syntactic identification of the interface module to distinguish it from the implementation modules

We normally produce a document for a ballot based on a working draft approved at the beginning of the week, which we vote at the end. For modules this week, there was only one proposal document, but we changed a lot of the syntactic descriptions and touched the grammar so we wanted to make sure people could see what we did. Thus, we are bringing a complete, revised document for straw poll instead of bringing changes to apply to a document.

This means you can look at the actual document to see if you like it. We are not taking a separate vote on the changes. If you do not like them, vote against the document

Sutter: this is not the first time we did this; we went that way for Ranges too. Thanks for doing the extra work

Miller: we thought it would be helpful to present the merged document at the current meeting

CWG Motions

Motion 1 Move to accept as Defect Reports the issues in P0710R1 (Core Language "ready" issues) and apply their proposed resolutions to the C++ working paper.

Miller: this is an R1, as with the document in the pre-meeting mailing there were concerns on an issue and we adjusted accordingly

Approved by unanimous consent

Motion 2 Move to accept as Defect Reports the issues in P0711R0 (Core Language "tentatively ready" issues) and apply their proposed resolutions to the C++ working paper.

Miller: tentatively ready means they were worked on during teleconferences

Approved by unanimous consent

Motion 3 Move to accept as Defect Reports the issues in P0727R0 (Core Issue 1299: Temporary objects vs temporary expressions) and apply their proposed resolutions to the C++ working paper.

Approved by unanimous consent

Motion 4 Move to apply the changes in P0683R1 (Default member initializers for bit-fields (revision 1)) to the C++ working paper.

Approved by unanimous consent

Motion 5 Move to apply the changes in P0704R1 (Fixing const-qualified pointers to members) to the C++ working paper.

Approved by unanimous consent

Motion 6 Move to apply the changes in P0409R2 (Allow lambda capture [=, this]) to the C++ working paper.

Approved by unanimous consent

Motion 7 Move to apply the changes in P0306R4 (Comma omission and comma deletion) to the C++ working paper.

Q: intent to reach out to the C committee with this?

Köppe: it has been presented to WG14. They seem to want it

Nelson: there is general agreement

Approved by unanimous consent

Motion 8 Move to apply the changes in P0329R4 (Designated Initialization Wording) to the C++ working paper.

Garçia: I have reservation that this feature promotes a low-level style of programming, leading to things that can be done with constructors

Smith: one cannot achieve C compatibility with constructors

Romer: when passing a large number of arguments to an API, using an "options struct" can give cleaner syntax with names at the call site

Voutilainen: we should not reopen Evolution discussion

Sutter: it's fine to raise concerns, but we do not want to extend technical discussions to plenary

Voutilainen: Evolution discussed this extensively and sent it forward

Objection to unanimous consent

Favor Opposed Abstain
39 2 2

Motion passed.

Motion 9 Move to apply the changes in P0428R2 (Familiar template syntax for generic lambdas) to the C++ working paper.

Joly: I think it complicates the definition of lambdas, and I see an intersection with concepts as syntax resembles suggested terse syntax. I will oppose this

Dionne: all this does is allow specifying the types of the parameter list in a lambda. It does not touch concepts

Sutter: was this discussed in Evolution, and if so, what was the result?

Voutilainen: I am not sure >laughs<

García: lambda syntax is meant to write simple functions in a short way. This helps write long lambdas

Spicer: it's already possible to write long lambdas. This is important functionality, don't use it if you don't want it

Voutilainen: the support for this proposal was very strong

Vandevoorde: sometimes, this shortens lambdas

Voutilainen: this makes lambdas and functions more uniform

Objection to unanimous consent

Favor Opposed Abstain
41 2 4

The two that opposed were national body representatives (Spain, France), but speaking for themselves, not for their respective national bodies

Motion passed.

Motion 10 Move to apply the changes in P0702R1 (Language support for Constructor Template Argument Deduction) to the C++ working paper and accept it as a Defect Report.

Josuttis: I thought this was already in C++17

Spertus: is this a DR?

Miller: it is a defect report against C++17

Voutilainen: some implementers have already implemented the proposal

Sutter: C++17 is not being discussed, as it is in ballot. We should be saying "against the C++20 working paper"

Miller: agreed. For C++20, but as a DR

Meredith: was this discussed in LEWG or LWG

Yasskin: not this week

Clow: not this week

Josuttis: it was discussed in prior meetings

Carruth: it fixes an inconsistency in the feature for a special case where the wording did not say what we meant

Miller: it was a slightly controversial change. There was consensus after the change that this was what it should say, but that consensus was not there at first

Meredith: it seems to me to be a "different consistency" more than fixing an inconsistency

Carruth: there was clear consensus in Evolution to make that case behave as proposed to unify the feature, after discussion

Objection to unanimous consent

Favor Opposed Abstain
36 4 8

Motion passed.

Motion 11 Move to apply the changes in P0734R0 (Wording Paper, C++ extensions for Concepts) to the C++ working paper.

Voutilainen: two days ago, I asked Smith if we would see that motion in plenary. He bet me a dollar. Here it is Sir (gives a dollar to Smith) >applause<

Sutter: thanks Core for all the work >applause<

Miller: it's very impressive to know this is an R0 paper for something discussed since Bristol

Objection to unanimous consent

Favor Opposed Abstain
41 2 6

Motion passed.

Motion 12 Move to direct the convener to transmit N4681 (Working Draft, Extensions to C++ for Modules) for PDTS ballot.

Miller: this document has the usual disclaimer of being incomplete, but the content after the first page is exactly what will be balloted

Objection to unanimous consent

Favor Opposed Abstain
33 8 7

Motion passed.

Library (Clow)

LWG worked late in the night in the last few meetings. We expected more reasonable work hours this time, but no

We have 24 motions, including three TSs being sent. Congratulations to all the authors

We have a couple of DRs against C++17

LEWG sent us many things, around six papers, about half of which we got to

We reviewed future work, including span, scope_guard, synchronized_ostream

There will be many issues in ready status after this meeting

I edited the motions page this morning, one non-normative (I added the numbers, as all of the motions were numbered 'N') and one normative as motions 32-33 are now DRs. I had failed to put them on the motions page

I would like to thank our scribe Billy >applause< and everyone who worked really hard to get these motions out

LWG Motions

Coroutines TS

Motion 13 Move that we apply the changes in P0664R1 (Coroutine TS NB Comments / Issues) to the Coroutines TS.

Objection to unanimous consent

Favor Opposed Abstain
43 1 3

Motion passed.

Vollmann says his voting against due to unsatisfactory resolution of his NB comments

Motion 14 Move that we appoint an editing committee of Geoffrey Romer, Bryce Lelbach, Gor Nishanov, and Marshall Clow, to verify the correctness of the Coroutines TS working paper as modified by the motions approved at this meeting, and to direct the Convener to transmit the approved updated working paper for publication.

Meredith: we can do this because the PDTS ballot came in with essentially no "no" vote

Sutter: TSs now have just one ballot. We vote, we publish

Objection to unanimous consent

Favor Opposed Abstain
45 2 4

Motion passed.

Ranges TS

Motion 15 Move that we apply the changes in P0663R0 (Ranges TS “Ready” Issues for the July 2017 (Toronto) meeting) to the Ranges TS.

Approved by unanimous consent

Motion 16 Move that we apply the changes in P0740R0 (Ranges TS “Immediate” Issues for the July 2017 (Toronto) meeting) to the Ranges TS.

Approved by unanimous consent

Motion 17 Move that we apply the changes in P0541R1 (Ranges TS: Post-Increment on Input and Output Iterators) to the Ranges TS.

Clow: all papers that follow in this section respond to NB comments on the Ranges TS

Approved by unanimous consent

Motion 18 Move that we apply the changes in P0547R2 (Ranges TS: Assorted Object Concept Fixes) to the Ranges TS.

Approved by unanimous consent

Motion 19 Move that we apply the changes in P0579R1 (Constexpr for <experimental/ranges/iterator>) to the Ranges TS.

Approved by unanimous consent

Motion 20 Move that we apply the changes in P0651R1 (Switch the Ranges TS to Use Variable Concepts) to the Ranges TS.

Sommerlad: the Ranges TS was based on C++14, but we just changed the syntax for concepts. What does it imply?

Niebler: the Ranges TS is based on concepts as published

Joly: does the fact that we now only use variable concepts impact the Ranges TS?

Niebler: we will have to adapt a few things

Sutter: we expect the results of motion 22 to help in doing that before Albuquerque

Herring: do I understand that changes this week will help work on the Ranges TS in the future?

Clow: exact

Niebler: all changes are syntactic

Approved by unanimous consent

Motion 21 Move that we apply the changes in P0662R0 (Wording for Ranges TS Issue 345 / US-2: Update ranged-for-loop wording) to the Ranges TS.

Maurer: wasn't this a Core motion?

Clow: yes, but we're moving it

Miller: it has Core wording but we did not move this

Approved by unanimous consent

Motion 22 Move that we appoint an editing committee of Eric Niebler, Casey Carter, Marshall Clow and Guy Davidson to verify the correctness of the Ranges TS working paper as modified by the motions approved at this meeting, and to direct the Convener to transmit the approved updated working paper for publication.

Approved by unanimous consent

Networking TS

Motion 23 Move that we apply the changes in P0728R0 (Wording for Networking PDTS ballot comment 005) to the Networking TS.

Approved by unanimous consent

Motion 24 Move that we apply the changes in P0729R0 (Proposed wording for Networking TS NB comment GB 9) to the Networking TS.

Approved by unanimous consent

Motion 25 Move that we apply the changes in P0742R0 (Wording for Networking PDTS ballot comment resolutions) to the Networking TS.

Approved by unanimous consent

Motion 26 Move that we apply the changes in P0746R0 (Wording for Networking PDTS ballot comment 011 (US-10)) to the Networking TS.

Approved by unanimous consent

Motion 27 Move that we apply the changes in P0747R1 (Wording for Networking PDTS ballot comment 026 (GB-15), but not 027 (GB-16)) to the Networking TS.

Approved by unanimous consent

Motion 28 Move that we apply the changes in P0748R0 (Wording for Networking PDTS ballot comments on reentrancy) to the Networking TS.

Approved by unanimous consent

Motion 29 Move that we appoint an editing committee of Jonathan Wakely, Chris Kohlhoff, Lars Gullik Bjønnes, Mikael Kilpeläinen, and Marshall Clow to verify the correctness of the Networking TS working paper as modified by the motions approved at this meeting, and to direct the Convener to transmit the approved updated working paper for publication.

Approved by unanimous consent

Parallelism TS

Motion 30 Move that we apply the changes in P0076R4 (Vector and Wavefront Policies) to the Parallelism TS V2.

Approved by unanimous consent

C++ Working Paper

Motion 31 Move to apply to the C++ working paper the proposed resolutions of all of the issues in P0698R0 (C++ Standard Library Issues to be moved in Toronto).

Approved by unanimous consent

Motion 32 Move to apply to the C++ working paper the proposed resolutions of all of the issues in P0699R0 C++ Standard Library Issues Resolved Directly In Toronto.

Clow: there are two issues moved as DRs against C++17. One is in allocation support for variant (it was not implementable), and we had failed to remove it from the C++ standard. Another is in filesystem, as something referred to a part that had been removed, so we fixed that

Approved by unanimous consent

Motion 33 Move that we apply the changes in P0463R1 (Endian just Endian) to the C++ working paper.

Approved by unanimous consent

Motion 34 Move that we apply the changes in P0682R1 (Repairing elementary string conversions) to the C++ working paper. This also resolves LWG issue 2955.

Approved by unanimous consent

Motion 35 Move to acccept as a Defect Report andthat we apply the changes in P0739R0 (Some improvements to class template argument deduction integration into the standard library) to the C++ working paper.

Clow: LEWG considered that they had passed it on to us, expecting it to be accepted as a DR against C++17. Along the way, information got lost and we did not process it right away, so I might come back with the same paper in Albuquerque to treat is as a DR

Tong: are we presuming that the DIS will pass?

Clow: yes. If it does not, we will have a lot to do

Yasskin: can we make it a DR now? Unless it causes discomfort...

Maurer: this changes the signature of a constructor in an incompatible way

Clow: it is intentional

Sutter: there is the option of asking the whole group assembled here if they are willing to accept it as a DR

Sutter: is there any objection to treating it as a DR?

(no objection)

Approved by unanimous consent

Motion 36 Move that we apply the changes in P0674R1 (Extending make_shared to Support Arrays) to the C++ working paper. This also resolves LWG issue 2070.

Maurer: should this be treated as a DR?

Clow: we did not discuss this as such

Sutter: the process was different in this case. We can discuss it in Albuquerque

Myers: who wants this?

Clow: Peter Dimov

Yasskin: I do not personally remember this paper. It was processed earlier than Kona

Josuttis: it solves the inconsistency with unique_ptr

Myers: we will be voting against this

Tong: I'd like to ask a question about the process in motion 35

Sutter: out of order

Objection to unanimous consent

Favor Opposed Abstain
34 1 14

Motion passed.

Tong: am I to understand that we expect an FDIS ballot?

Sutter: if the DIS ballot succeeds, we can avoid the FDIS ballot and go directly to IS. If there is opposition from a NB to the DIS, we will have to do an FDIS

Voutilainen: we are not doing anything to... (missed it)

Tong: the response from WG21 would be no consensus for that change, no?

Sutter: we will deal with it if it happens, but... please don't do that >laughs!<. Please don't do things such as requesting new features at this stage. Do that for C++20

Sutter: from our point of view, we finished the technical work for C++17 in Kona, and we're moving on to C++20

Nelson: we have finished the motions >applause<

Sutter: now, for the direction group

Stroustrup: we want to make a list of changes to describe how we'd like to deal with those changes. Winters will prepare something for vote in Albuquerque. We will try to gather feedback for the Bill of Rights and return in Albuquerque. Dawes will look for a way to gather library proposals

8. Closing activities (Saturday 11:16)

Nelson: if you did not check your mark on the attendance sheet, go see Spicer after the meeting

Nelson: I have an announcement. INCITS has sent an email about fees, but it contained an important piece of information: the fees are less for small companies and those in education, but you have to tell INCITS by August 30 if you want to benefit from this

Brown: I have two brief motions. I want to move to thank the host >applause<. I would also like us to thank the following:

8.1 PL22.16 motions, if any


8.2 Issues delayed until today


9. Plans for the future (PL22.16)

9.1 Next and following meetings

Edwards: as a FYI, my company is not allowed to cover food and drinks. The hotel room rates are very low and it provides breakfast and lunch. You have to call the hotel to get the rates. We can facilitate a social event but we cannot sponsor it due to company rules, so if you want to sponsor one, contact me

Sutter: Sommerlad has informed me that it might be good to make reservations now as there will be a triathlon at the same time and there will be many people there

Sommerlad: there are other accommodations not too far away (1-2 trains stops) should it be required, but they are not as convenient

Sutter: in the fall of 2018, the dates are not chosen yet, but we are looking to San Diego

Sutter: I have a queue of European hosts. The plan is, for 2019, to go to Northern Ireland in Belfast (Caves reacts!), which Orr claims is safe >laughs!<

Spicer: to be clear, it is permitted to send papers more than 24 hours before the deadline >laughs!<

Sutter: in 2020, we are looking at Bulgaria on the coast of the Black Sea (Zeren describes)

Sutter: is there any objection to holding a meeting in Cologne during 2019? (approximately 16 hands go up)

Adlestein-Lelbach: for us, it's a different approval process to "go international"

Sutter: "takes longer" is not a problem, but "can't come" would be. Follow-up discussions will occur on the reflector

Riegel: for some of us, travelling three times per year across the Atlantic like in 2017 is quite costly

Sutter: for how many of you have the three North-American meeting of 2017 be a problem? (approximately 16 hands go up)

Meredith: show of hands to see for whom it's a hardship to come to North America 2-3 times per year (hands go up, but there was no count as far as I know)

9.2 Mailings

Deadline for papers is 14:00 UTC.

Meredith: do we send the papers to Spicer?

Nelson: yes

10. Adjournment (PL22.16 motion)

Clow moved to adjourn. Hedquist seconded.

Plenary concludes at 11:40 AM

11. Attendance

The column "WG21" designates official PL22.16 or WG21 status ("P", "A", "E", "M")

The column "PL22.16" indicates organizations eligible to vote by "V", and advisory membership by "A".

PL22.16 members

Company / Organization NB Representative WG21 PL22.16
Amazon Louis Dionne P V
Amazon John McFarlane
AMD Siu Chi Chan
Apple Duncan Exon Smith A
Apple CA JF Bastien A
Apple Tim Northover A
Apple Bruno Cardoso Lopes A
Argonne National Lab Hal Finkel P V
Bloomberg John Lakos P V
Bloomberg UK Alisdair Meredith A
Bloomberg UK Dietmar Kühl A
Bloomberg David Sankel A
Bloomberg Alexander Beels
Brown Walter E. Brown E
Cisco Systems Lars Gullik Bjønnes P V
Edison Design Group John H. Spicer P V
Edison Design Group Daveed Vandevoorde A
Edison Design Group Jens Maurer A
Edison Design Group William M. Miller A
EPAM Systems Inc Mateusz Pusz P
Facebook Louis Brandy P V
Facebook Eric Niebler A
Facebook Lee Howes A
Facebook Maged Michael A
Facebook Nathan Sidwell
FlightSafety International Billy Baker P V
Google Chandler Carruth A V
Google Geoffrey Romer A
Google Hans Boehm A
Google James Dennett A
Google Jeffrey Yasskin A
Google UK Richard Smith A
Google Thomas Koeppe
Google Titus Winters A
Google Gennadiy Civil v
GrammaTech Inc, Aaron Ballman P V
GreenWireSoft Juan Alday P V
IBM Paul E. McKenney P V
IBM CA Hubert Tong A
IBM CA Shuo Feng Liu
Intel Clark Nelson P V
Intel Pablo Halpern A
Intel Erich Keane
Lawrence Berkeley Bryce Adelstein-Lelbach P V
Lawrence Berkeley Brian Van Straalen A
Lawrence Livermore James Frederick Reus P V
Linden Research, Inc. Nat Goodspeed P V
Los Alamos National Laboratory S. Davis Herring A
Louisiana State University Hartmut Kaiser P V
LTK Engineering Alan Talbot P V
Microsoft Jonathan Caves P V
Microsoft Gabriel Dos Reis A
Microsoft Herb Sutter A
Microsoft Gor Nishanov A
Microsoft Andrew Pardoe A
Microsoft Casey Carter A
Microsoft Billy R. O'Neal III
MongoDB Adam Martin P V
MongoDB Nathan Myers A
Morgan Stanley Bjarne Stroustrup P V
NVidia Jared Hoberock A V
NVidia Olivier Giroux A
Oak Ridge National Laboratory Graham Lopez P
Oracle Maxim Kartashev A V
Perennial Barry Hedquist P V
Perennial Beman G. Dawes A
Plum Hall FI Ville Voutilainen A
Programming Research Group Christof Meerwald A V
Qualcomm Marshall Clow P V
Red Hat Torvald Riegel A V
Ripple Labs Howard E. Hinnant P V
Sandia National Labs Carter Edwards P V
Sony Computer Entertainment Michael Spencer A V
Symantec Mike Spertus P V
Synopsys Thierry Lavoie P V
Synopsys Tom Honermann A
University of Akron Andrew Sutton P V

Other WG21 members

Company / Organization NB Representative WG21
Codeplay CA Michael Wong M
Mozilla CA Botond Ballo M
Christie Digital CA Tony Van Eerd M
Université de Sherbrooke CA Patrice Roy M
CERN CH Axel Naumann M
Vollmann Engineering CH Detlef Vollmann M
HSR CH Peter Sommerlad M
CH Mauro Bianco M
University Carlos III ES J. Daniel García M
CryptoTec FI Mikael Kilpeläinen M
FR Loïc Joly M
Symantec UK Dinka Ranns M
PDT Partners UK Jeff Snyder M
UK Roger Orr M
Jetbrains UK Timur Doumler M

Participating non-members

Company / Organization NB Representative
Allan Deutsch
KEWB Computing Bob Steagall
Canada Seneca Chris Szarwinski
Faisal Vali
Creative Assembly Guy Davidson
Blizzard James Touton
University of Nice Jean-Paul Rigault
Numscale Joel Falcou
Graphcore Jon Chesterfield
Tanium Lisa Lippincott
VMWare Mark Zeren
Matt Calabrese
Melissa Mears
Nokia Michał Dominiak
Michael Park
Bob Taco Industries Michael McLaughlin
Michael Young
Nicolai Josuttis
University of Windsor Paul Preney
KCG Holdings Robert Douglas
Xilinx Ronan Keryell
Nokia Vicente J. Botet Escriba
ARM Will Deacon
Yander Alexsander [illegible]
Cadence Zach Laine