http://www.w3.org/TR/html4/strict.dtd"> WG21 2014-11 Urbana Minutes

WG21 2014-11 Urbana Minutes

ISO/IEC JTC1 SC22 WG21 N4251 - 2014-11-21

Jonathan Wakely, [email protected]

WG21 Meeting No. 59
November 3-8, 2014 – Urbana-Champaign, IL, USA

1. Opening activities

Monday, November 3, 9:00am–noon

Clamage opened the meeting at 9:00am.

1.1 Opening comments, welcome from host

1.2 Introductions

1.3 Meeting guidelines (INCITS Patent and Anti-Trust policies)

http://www.incits.org/standards-information/legal-info

http://www.incits.org/dotAsset/63b6e457-53b9-4933-9835-7c74e77ca2fd.pdf

(ISO meeting guidelines)

http://www.iso.org/iso/codes_of_conduct.pdf

Clamage pointed to the policies and instructed interested people to take a look at them.

1.4 Membership, voting rights, and procedures for the meeting

1.5 Agenda review and approval

The agenda in N4122 was unanimously approved.

1.6 Approval of the minutes of the previous meeting

The minutes of the previous meeting in N4053 and N4054 were unanimously approved.

1.7 Editors’ reports, approval of drafts (C++ Standard, and TS’s)

Smith announced there is a preview working draft with resolutions to Ready issues on the meeting wiki in the "documents area".

Sutter reminded that there has been no motions to modify the main working draft at the previous meeting.

N4140, C++ Working Draft, was unanimously approved.

N4081, Library Fundamentals Working Draft, was unanimously approved.

N4084, Library Fundamentals v2 Working Draft, was unanimously approved.

N4099, Filesystem Working Draft, was unanimously approved.

N4104, Parallelism Working Draft, was unanimously approved.

N4107, Concurrency Working Draft, was unanimously approved.

1.8 Liaison reports, and WG21 study group reports

Miller pointed out that while the telecon minutes contain subgroup reports, they do not contain a WG14 liaison report. Plum explained that the CPLEX meeting was canceled, and that WG14 worked on defect reports.

Sutter explained that the Technical Specification (TS) on Library Fundamentals and the TS on Parallelism are aiming for PDTS ballot resolution during the meeting. NWIP expected for the second version of Library Fundamentals. Concurrency is aiming for PDTS, as is Concepts.

Meredith pointed out that in order to gain the benefit of experience of a TS, it looks like File System, Library Fundamentals (v1), and Parallelism can hit C++17, he thinks that C++20 is the target for most others. Stroustrup thought that's too much caution. Carruth thought that the discussion should be had in WGs rather than the plenary. Sutter pointed out that the parallel tracks give us flexibility with regards to making the decision.

1.9 WG progress reports and work plans for the week

Each group reported their status.

1.10 New business requiring actions by the committee

2. Organize Working Groups and Study Groups, establish working procedures.

Maurer went through the room arrangements. Voutilainen pointed out that since the Modules chair is not present, EWG will deal with modules, but there are scheduling challenges involved.

3-7. WG and SG sessions.

Monday, November 3 from afternoon break until 5:30pm. From Tuesday, November 4 to Thursday, November 6 8:30am-5:30pm. Friday, November 7 8:30am-noon.

8. General session

Friday, November 7, 1:30pm–5:30pm

Clamage opened the meeting at 13:39, Sutter explained this is a ballot resolution meeting, comments were received on Parallelism TS and Library Fundamentals TS. Some additional comments were received on Wednesday. Assuming no further comments those documents will be ready to vote out the revised PDTS as DTS. Sutter is going to convene a ballot resolution telecon for ballot resolution. With no more comments it will be a short meeting. In case of comments there are motions proposing that we accept the results of the telecon. Sutter believed all current comments are resolved.

Dawes requested explicit confirmation if there are no new comments received in the next few days. Sutter agreed to confirm that.

8.1 WG and SG status and progress reports.

Miller presented the CWG report, which dealt with events from this meeting only. The motions include those held over from Rapperswil, but the report didn't cover them. Most time was spent reviewing wording for TSs. Also wording review for C++17 proposals approved by EWG. Some issue processing was done, with plans to do more as well.

There were two 2-hour telecons for Concepts since Rapperswil and 2+ days of reviews at Urbana. Lots of changes made so still reviewing and not issuing PDTS at this meeting. Implementors can assume finished design. Two telecons planned in Nov and Dec and then shorter review meeting in January co-located with ranges.

Sutter thanked CWG and EWG for coordinating review of changes. Sutter asked for a show of hands to indicate preference for the location of the concepts meeting but Spicer suggested separate meetings for concepts and ranges. Sutter took a show of hands for that question first, with two in favor of co-location and many more against. The preference of location question had four more likely to attend in Seattle and six more likely in New Jersey. Eleven indicated they were likely to attend the concepts meeting. Orr asked about the number of remote attendees. Herb explained the telecons are working well and asked how many would benefit from the ability to attend remotely, with several indicating interest.

Miller continued his report. CWG looked at Transactional Memory (TM), with one 2-hour telecon and more review at this meeting. Moving as PDTS, one meeting ahead of schedule. Voutilainen applauded Maurer. Will have several TM telecons before Lenexa, not yet scheduled. Nelson asked if there is a document number for the TM TS yet.

Ballo asked why fold expressions are in C++17 not the Concepts TS. Voutilainen said EWG's guidance is not binding. Miller said it was forwarded to CWG as C++17 and approved as such. Sutton confirmed that the Concepts TS depends on the feature, so it will need to be added to the TS as well as C++17 WP.

Meredith asked about the status of incrementing bool. Miller did not know.

Sutter clarified that the Concepts meeting will be an official WG21 meeting, with a restricted agenda, so it can issue a PDTS, so that ballot comments can be received by the Lenexa meeting. Clamage asked if it counts as a PL22.16 meeting. Sutter to confirm with Nelson.

Vollman expressed desire for telecon facilities for the concepts meeting.

Clamage reminded everyone that the formal motions are now being correctly called straw polls. Sutter reminded that everyone in the ISO global directory can vote. Straw polls were taken on the CWG motions.

Meredith presented the LWG report. LWG reviewed around 25 papers and all preview comments on PDTS ballots. Meredith gave previews of ongoing work which was not on the motions page. Straw polls were taken on the LWG motions.

Yasskin gave the LEWG report and called out that in Lenexa conditionally-supported math functions are going to be covered. Implementors should read it and be prepared to discuss it. LEWG covered most of their agenda but two papers were not dealt with due to a lack of presenter.

Voutilainen gave the EWG report, saying that most new papers were dealt with. EWG is moving towards specifying evaluation order. The "highdarks" are that the group is struggling with the workload. EWG had not looked at older papers or any issues. No progress was made on arrays of runtime bound.

Voutilainen explained that improving the language is hard due to compatibility. It doesn't help that most proposals have no implementation experience or data on use experience and impact.

Voutilainen thanked the scribes (Dennett, Vandevoorde, Nishanov, Price, Wiegley) for taking minutes, stating that an evolution chair can only be as good as his scribes and these were excellent.

Winters asked about the make up of the committee, it was suggested to discuss it outside of plenary.

Price asked about status of default comparison operators. Voutilainen said the preference was for opt-in not opt-out and expects proposals in Lenexa, but too early to say what they will look like.

Crowl gave a report for SG1 (Concurrency) on behalf of Boehm. The Parallelism TS is going to DTS, with responses to comments. Moving towards Parallelism v2 but not got anything done yet. The Concurrency TS is ongoing. There was a substantial discussion on coroutines in an evening session. Issue processing remains to be done at the meeting.

Maurer asked about the status of shared_mutex. Meredith responded that it was forward from LEWG to LWG and is going to be looked at in Cologne.

Regarding SG2 (Modules) Voutilainen reported that implementations and users want to move forward and have something to play with. There has been discussion about syntax and proposed semantics, EWG gave recommendations to proceed with what is proposed.

Dawes reported that SG3 (Filesystem) would welcome proposals for different types of filesystem.

Sutter stated that SG4 (Networking) is dormant until LEWG decide to reactivate it.

Wong reported that SG5 (Transactional Memory) achieved the TS milestone. He thanked Maged Michael, Victor Luchangco, Jens Maurer, Torvald Riegel and Hans Boehm.

Crowl reported that SG6 (Numerics) met and talked about replacing std::rand(). The group looked at some issues. They are going back to math functions, which can now be conditionally-supported. They looked at typedefs for floating point types of known widths, which would naturally go to WG14 but that would not likely work, so they need to figure something out. They are looking at a TS with outstanding papers such as bignums, ratios, fixed-point arithmetic. Wong mentioned decimal floating point, which Crowl confirmed is being wokred on, but is already a separate document and will stay as such. Kühl confirmed it's a TR, there is experience with it, so it could go into the standard. Brown pointed out that it's up for review soon. Dawes asked if a TS might be started at the next meeting. Crowl said it's unlikely to be ready enough for a new work item. Sutter said the work item would be asked for at the same time as we start a working draft.

Carruth reported that most of the SG7 (Reflection) work has happened in EWG and LEWG. Source code capture is going to LEWG in Lenexa. There has been discussion on how defaulted comparisons relates to reflection. SG7 will be meeting Friday evening, discussing type property queries, and a large paper about a complete reflection mechanism across the entire language. The group want feedback for the author. Sutter asked if the paper is interesting enough that the group feels it is worth looking at without the author. Carruth said that would be discussed and if necessary he would find a champion. Carruth pointed out the original paper in the pre-Rapperswil mailing has been revised, based on feedback given after Rapperswil.

Austern (SG8, Concepts) repeated that Concepts Lite is coming out of core and will be a PDTS soon. SG8 met briefly to discuss what should be done next, agreeing it should be an updated standard library, which might end up being the same work as a Ranges TS.

Clow (SG9, Ranges) reported there was a well-attended evening session and a lot of interest and support for Niebler's direction. Sommerlad asked about timeframe of a stable product. Clow said there is no schedule, that currently there is an implementation but no wording, so it will be a while before there is a TS. The group unlikely to meet before the next meeting.

Nelson reported that SG10 (Feature Test) did not meet this week, but had a proposed document for the first revision of the standing document. There is no precedent for standing documents that are technical, rather than administrative, so it is necessary to determine how to proceed with making changes to that document. Sutter explained that the work has been done separate from the standard as a standing document and proposed that SG10 be empowered to maintain the document directly, which received unanimous agreement.

Dos Reis reported that SG13 (Undefined Behavior) looked at how to memcpy from int to float. They also looked at the preprocessor. They had previously agreed there is no reason to have undefined behavior coming from the preprocessor. They have directions on how to refine the fixes to allow sensible things but prohibit other things. It was suggested it would be good to have a more formal definition of the preprocessor. The preprocessor is used by other languages too so might want to talk to SC22 about a committee to oversee preprocessor changes, so changes can be more portable. Wong asked about recent research on security implications of undefined behaviour. Dos Reis confirmed they are aware and keeping it in mind. Carruth called attention to ubsan and requested other vendors to implement it.

Sutter reported that SG14 (I/O) was due to meet the following day. There is a substantial draft paper with wording to be reviewed on Saturday. Wong expressed confusion between Graphics and I/O, so Sutter explained that the topic has broadened to generally interacting with the user. Josuttis said I/O is confusing, and asked if it covers the concept of windows. Sutter said it explicitly excludes that, is currently only about drawing pixels. Dawes pointed out the naming must avoid acting as a lightning rod.

8.2 Presentation and discussion of proposals. Straw votes taken.

CWG Motions

Straw poll, CWG Motion 1, Move to accept as Defect Reports the following issues from N4192 (all issues in "ready" status except 314, 343, 1299, 1584, 1710, 1794, 1812, and 1817) and apply their proposed resolutions to the C++ working paper:
393 591 609 1292 1338 1351 1356 1397 1446 1465 1467 1484 1490 1492 1552 1558 1571 1572 1573 1589 1591 1596 1600 1603 1614 1615 1631 1633 1639 1651 1686 1694 1705 1708 1712 1744 1748 1750 1751 1752 1753 1756 1757 1758 1766 1777 1779 1780 1782 1791 1793 1796 1797 1799 1800 1802 1804 1805 1806 1809 1810 1814 1816 1823 1824 1830 1832 1834 1843 1846 1850 1851 1852 1877 1892 1893 1911 1940

CWG Motion 1 was approved by unanimous consent.

Straw poll, CWG Motion 1, Move to accept as Defect Reports all issues in "tentatively ready" status from N4192, as well as 987 (previously in "open" status but resolved by 1838), and apply their proposed resolutions to the C++ working paper:
987 1021 1630 1672 1696 1719 1774 1788 1795 1807 1811 1813 1815 1819 1838 1848 1858 1865 1866 1870 1874 1878 1881 1882 1885 1887 1891 1902 1909

CWG Motion 2 was approved by unanimous consent.

Straw poll, CWG Motion 3, Move to create a working paper for the Technical Specification on C++ Extensions for Transactional Memory with N4272, "Technical Specification on C++ Extensions for Transactional Memory, Working Draft Header" and N4265, "Transactional Memory Support for C++: Wording (revision 3)" as its initial content.

Meredith confirms LWG saw and approved the library-related wording.

CWG Motion 3 was approved by unanimous consent.

Straw poll, CWG Motion 4, Move to appoint a review committee composed of Jens Maurer, Alisdair Meredith, and William M. (Mike) Miller to approve the correctness of the C++ Transactional Memory working paper as created by the preceding motion, and to direct the Convener to transmit the approved working paper to SC22 for PDTS ballot.

CWG Motion 4 was approved by unanimous consent.

Straw poll, CWG Motion 5, Move to apply to the C++ working paper the proposed wording from N4259, "Wording for std::uncaught_exceptions".

Nelson asked whether the proposal has a feature-testing macro recommendation. It does not.

CWG Motion 5 was approved by unanimous consent.

Straw poll, CWG Motion 6, Move to apply to the C++ working paper the proposed wording from N4261, "Proposed resolution for Core Issue 330: Qualification conversions and pointers to arrays of pointers".

CWG Motion 6 was approved by unanimous consent.

Straw poll, CWG Motion 7, Move to apply to the C++ working paper the proposed wording from N4262, "Wording for Forwarding References".

CWG Motion 7 was approved by unanimous consent.

Straw poll, CWG Motion 8, Move to apply to the C++ working paper the proposed wording from N4266, "Attributes for namespaces and enumerators".

Nelson asked whether the proposal has a feature-testing macro recommendation. It does not. Nelson requested that proposals should include feature-testing macros, not rely on SG10 to keep doing it.

CWG Motion 8 was approved by unanimous consent.

Straw poll, CWG Motion 9, Move to apply to the C++ working paper the proposed wording from N4267, "Adding u8 character literals".

Meredith asked what the behaviour is for characters too large for char and was told that is ill-formed.

CWG Motion 9 was approved by unanimous consent.

Straw poll, CWG Motion 10, Move to apply to the C++ working paper the proposed wording from N4268, "Allow constant evaluation for all non-type template arguments".

Nelson asked what wasn't allowed previously. Smith explained a syntactic restriction was removed.

CWG Motion 10 was approved by unanimous consent.

Straw poll, CWG Motion 11, Move to apply to the C++ working paper the proposed wording from N4230, "Nested namespace definition (revision 2)".

CWG Motion 11 was approved by unanimous consent.

Straw poll, CWG Motion 12, Move to apply to the C++ working paper the proposed wording from N4285, "Cleanup for exception-specification and throw-expression".

CWG Motion 12 was approved by unanimous consent.

Straw poll, CWG Motion 13, Move to apply to the C++ working paper the proposed wording from N4295, "Folding expressions".

Crowl asks what the term means and Sutton explained it. Nelson asked if it has been implemented. Perchik reported a partial implementation, using slightly different syntax. Nelson expressed concern that it only appeared in the pre-Urbana meeting, so seems rushed. Carruth stated the feature is small and will be easy to implement.

CWG Motion 13 straw poll results were:

In favor: 42 Opposed: 7 Abstain: 14

Sutter asked if those opposed had specific reasons. Sommerlad said he wanted an implementation. Perchik said the syntax that has been implemented is (x @ ... y) rather than (x @ ... @ y).

US PL22.16 members: In favor: 15 Opposed: 3 Abstain: 7

Sutter declared consensus, motion approved.

Straw poll, CWG Motion 14, Move to apply to the C++ working paper the proposed wording from N3928, "Extending static_assert, v2"

CWG Motion 14 was approved by unanimous consent.

Straw poll, CWG Motion 15, Move to apply to the C++ working paper the proposed wording from N3994, "Range-Based For-Loops, The Next Generation (Revision 1)"

Carruth presented an example showing a problem. BSI had the same concern. Lavavej suggested compilers provide a dedicated warning. Garcia expressed concern that this is the only time we introduce a new name without a type. Josuttis explained the motivation. Lavavej pointed out that lambda init-capture introduces names without types. Spicer wondered how people feel about concepts syntax. Meredith said BSI agreed there's a problem but disliked the syntax. Lavavej explained range-based for hides the definition of variables.

Sutter requested that people let authors know sooner if they have problems with proposals.

Lavavej requested suggestions of alternate syntax.

Winters suggested training programmers to use auto&&

Vandevoorde suggested making shadowing ill-formed. Those opposed to the feature would not change their mind with that rule.

Clamage called a straw poll. CWG Motion 13 straw poll results were:

In favor: 8 Opposed: 43 abstain: 18

Motion not carried.

The motion was removed from the formal motions page.

Straw poll, CWG Motion 16, Move to apply to the C++ working paper the proposed wording from N3922, "New Rules for auto deduction from braced-init-list"

CWG Motion 16 straw poll results were:

In favor: 25 Opposed: 5 abstain: 36

Sutter declared consensus, motion approved.

Straw poll, CWG Motion 17, Move to apply to the C++ working paper the proposed wording from N4051, "typename/class"

CWG Motion 17 was approved by unanimous consent.

Straw poll, CWG Motion 18, Move to apply to the C++ working paper the proposed wording from N4086, "Removing trigraphs??!"

Josuttis asked if digraphs remain and was told they do. Seymour asked if this has been communicated to WG14. Meredith asked if period of deprecation was considered. Wong reminded the committee that he has written a paper. IBM conceptually would not object to the motion. IBM would oppose, Canada would not.

Spicer reminded that a compiler allowing trigraphs is still conforming. Dos Reis said most compilers have trigraphs disabled by default.

Crowl asked if it only removes support from string literals or everywhere and the answer was that it removes them everywhere.

Carruth said it was voted on and removal was preferred to deprecation.

Plum said WG14 keeps an issue list for the next standard and this should go onto that list for WG14 to consider.

Clamage stated that supporting them as an extension changes the behaviour of the program.

Dennett thanked Wong for being gracious in opposition to this and allowing it to proceed, which was seconded by all present.

CWG Motion 18 straw poll results were:

In favor: 57 Opposed: 2 Abstain: 10

Sutter declared consensus, motion approved.

LWG Motions

Extensions for Parallelism PDTS

Straw poll, LWG Motion 1, Move we apply to the Parallelism TS Working Paper the Proposed Wording from N4275 Response to National Body comments for C++ Extensions for Parallelism.

LWG Motion 1 was approved by unanimous consent.

Straw poll, LWG Motion 2, Move we apply to the Parallelism TS Working Paper the Proposed Wording from N4276 Transform Reduce, an Additional Algorithm for C++ Extensions for Parallelism.

LWG Motion 2 was approved by unanimous consent.

Straw poll, LWG Motion 3, Move to apply to the Parallelism TS working paper the resolutions approved at the upcoming Parallelism PDTS ballot resolution teleconference meeting to any additional PDTS national body comments not already processed at this meeting.

Sutter explained the procedure for a future ballot telecon meeting. Spicer expressed concern at changes being made without full committee. Spicer asked about about the procedure followed during telecon. Sutter explained that if there are no more coments the telecon will only be short. Sutter repeated that he will say very soon whether or not there are any more comments.

LWG Motion 3 was approved by unanimous consent.

Straw poll, LWG Motion 4, Move to appoint an editing committee composed of Alisdair Meredith, Hans Boehm, and Lawrence Crowl to approve the correctness of the Parallelism working paper as modified by the motions approved at this meeting, and to direct the Convener to transmit the approved updated working paper for DTS ballot.

LWG Motion 4 was approved by unanimous consent.

Library Fundamentals PDTS

Straw poll, LWG Motion 5, Move that we strike Clause 11 (Network Byte Order) and remove the reference to the Unicode standard RFC2781 from sub-clause 1.2 (Normative References) of the Library Fundamentals TS Working Paper.

Ballo asked if the removed features will go back in to the TS. Meredith said that decisions would be deferred to LEWG.

LWG Motion 5 was approved by unanimous consent.

Straw poll, LWG Motion 6, Move we apply to the Library Fundamentals TS Working Paper the Proposed Wording from N4270, Collected Edits to the Library Fundamentals TS.

LWG Motion 6 was approved by unanimous consent.

Straw poll, LWG Motion 7, Move we apply to the Library Fundamentals TS Working Paper the Proposed Wording from N4288, Strike string_view::clear from the Library Fundamentals TS.

Meredith explained that this was a comment on the PDTS, which LWG agreed was a defect and asked LEWG to consider removing it, the LEWG poll was neutral. The LWG position strengthened that it should be removed. Van Eerd asked for confirmation it's removed not renamed, which was confirmed. Hinnant stated the same effect can already be achieved by another function anyway.

LWG Motion 7 was approved by unanimous consent.

Straw poll, LWG Motion 8, Move to apply to the Library Fundamentals TS working paper the resolutions approved at the upcoming Library Fundamentals PDTS ballot resolution teleconference meeting to any additional PDTS national body comments not already processed at this meeting.

LWG Motion 8 was approved by unanimous consent.

Straw poll, LWG Motion 9, Move to appoint an editing committee composed of Alisdair Meredith, Jeffrey Yasskin, and Nicolai Josuttis to approve the correctness of the Library Fundamentals working paper as modified by the motions approved at this meeting, and to direct the Convener to transmit the approved updated working paper for DTS ballot.

LWG Motion 9 was approved by unanimous consent.

C++17

Straw poll, LWG Motion 10, Move we apply the resolutions of the following issues in "Ready" status from N4245 to the C++ Working Paper:
2170 Aggregates cannot be DefaultConstructible
2016 Allocators must be no-throw swappable
2340 Replacement allocation functions declared as inline
2377 std::align requirements overly strict
2399 shared_ptr's constructor from unique_ptr should be constrained
2400 shared_ptr's get_deleter() should use addressof()
2401 std::function needs more noexcept
2396 underlying_type doesn't say what to do for an incomplete enumeration type
2408 SFINAE-friendly common_type / iterator_traits is missing in C++14
2354 Unnecessary copying when inserting into maps with braced-init syntax
2404 mismatch()'s complexity needs to be updated

LWG Motion 10 was approved by unanimous consent.

Straw poll, LWG Motion 11, Move we apply the resolutions of the following issues in "Tentatively Ready" status from N4245 to the C++ Working Paper:
2129 User specializations of std::initializer_list
2212 tuple_size for const pair request header
2361 Apply 2299 resolution throughout library
2376 bad_weak_ptr::what() overspecified
2365 Missing noexcept in shared_ptr::shared_ptr(nullptr_t)
2387 More nested types that must be accessible and unambiguous
2233 bad_function_call::what() unhelpful
2266 vector and deque have incorrect insert requirements
2230 "see below" for initializer_list constructors of unordered containers
2106 move_iterator wrapping iterators returning prvalues
2325 minmax_element()'s behavior differing from max_element()'s should be noted
2217 operator==(sub_match, string) slices on embedded '\0's

LWG Motion 11 was approved by unanimous consent.

Straw poll, LWG Motion 12, Move we apply to the C++ Working Paper the Proposed Wording from N4190, Removing auto_ptr, random_shuffle(), And Old <functional> Stuff.

The removal of features was applauded.

LWG Motion 12 straw poll results were:

In favor: 48 Opposed: 1 Abstain: 13

Sutter declared consensus, motion approved.

Straw poll, LWG Motion 13, Move we apply to the C++ Working Paper the Proposed Wording from N4284, Contiguous Iterators.

LWG Motion 13 was approved by unanimous consent.

Straw poll, LWG Motion 14, Move we apply to the C++ Working Paper the Proposed Wording from N4089, Safe conversions in unique_ptr<T[]>.

Romer summarised that all conversions were disabled for arrays, even safe ones such as adding constness. The proposal tightens the spec to allow this. The difficulty was due to fancy pointers which complicate the specification, fancy pointer conversions are still forbidden. Lavavej asked if this is resolved by relying on a core resolution, the answer was yes, by CWG motion 6.

LWG Motion 14 was approved by unanimous consent.

Straw poll, LWG Motion 15, Move we apply to the C++ Working Paper the Proposed Wording from N4277, TriviallyCopyable reference_wrapper.

LWG Motion 15 was approved by unanimous consent.

Straw poll, LWG Motion 16, Move we apply to the C++ Working Paper the Proposed Wording from N4258, Cleaning-up noexcept in the Library.

Josuttis pointed out that this provides a guarantee of better performance for vector<string>. Halpern pointed out this relies on allocators being nothrow default constructible, which is not currently required. Lavavej agreed it's an issue but said it should not block this change.

LWG Motion 16 was approved by unanimous consent.

Straw poll, LWG Motion 17, Move we apply to the C++ Working Paper the Proposed Wording from N4279, Improved insertion interface for unique-key maps.

LWG Motion 17 was approved by unanimous consent.

Straw poll, LWG Motion 18,

Maurer pointed out there's a core issue that means it isn't entirely specified but Merrill pointed out that has been resolved at this meeting, issue 1558, part of CWG Motion 1.

LWG Motion 18 was approved by unanimous consent.

Straw poll, LWG Motion 19, Move we apply to the C++ Working Paper the Proposed Wording from N4169, A proposal to add invoke function template

LWG Motion 19 was approved by unanimous consent.

Straw poll, LWG Motion 20, Move we apply to the C++ Working Paper the Proposed Wording from N4280, Non-member size() and more

LWG Motion 20 was approved by unanimous consent.

Library Fundamentals 2 TS

Straw poll, LWG Motion 21, Move we apply to the Working Paper for the Library Fundamentals 2 TS the Proposed Wording from N4273, Uniform Container Erasure.

LWG Motion 21 was approved by unanimous consent.

Straw poll, LWG Motion 22, Move we apply to the Working Paper for the Library Fundamentals 2 TS the Proposed Wording from N4061, Greatest Common Divisor and Least Common Multiple.

LWG Motion 22 was approved by unanimous consent.

Straw poll, LWG Motion 23, Move we apply to the Working Paper for the Library Fundamentals 2 TS the Proposed Wording from N4257, Delimited iterators.

LWG Motion 23 was approved by unanimous consent.

Straw poll, LWG Motion 24, Move we apply to the Working Paper for the Library Fundamentals 2 TS the Proposed Wording from N4282, The World’s Dumbest Smart Pointer.

Liber expressed strong dislike, because raw pointers already express the idea. Meredith pointed out the motion is for the TS not IS. Liber said that still implies we think it should exist. Dos Reis said a type which adds no functionality will confuse. Austern said he sees it as a way to support organisations that forbid raw pointers, but those organisations can write their own. Lavavej pointed out that the adaptors stack and queue add no functionality. Dos Reis responded that they came with the STL, don't need to copy that now.

Dennett pointed out that make_observer's interface has very different semantics from make_xxx for other smart pointers.

Romer said there is wide disagreement on exactly what idioms this is meant to support, ambiguity in what it's for suggests it's not ready.

Sutter restated Austern's point and asked whether we want portable code to be able to do that and in which case we want a standard vocabulary type.

Nishanov said "observable" means something specific in some domains.

Yasskin said it does remove some functionality, specifically pointer arithmetic and conversion to void*. Winters said there are two design choices, whether it implicitly converts from raw pointers, and whether it converts to raw pointers. Some organisations would want the opposite choices from those made by the proposal. Voutilainen believes the most important part of the proposal is that it does not convert to raw pointer.

Halpern said he wants to see it in a TS and see if people use it and find it useful. Brown stressed that it arose from experience with 8 or 9 years of usage. Was regularly cursed when introduced, but then praised. Proposed because of demonstrated utility in practice, in a very very large codebase. Would be nice to get experience reports from other big and small codebases. Sutter said that a TS is intended to gain experience with things that might not be baked. He suggested voting in favor unless already sure that you never want it to go into a standard and no TS experience would change your mind.

LWG Motion 24 straw poll results were:

In favor: 35 Opposed: 11 Abstain: 21

US PL22.16 members:

In favor: 16 Opposed: 3 Abstain: 4 US approves.

Sutter declared consensus, motion approved.

WG21 Motions

Move to direct the Convener to request a New Work Item for 14882 (C++).

The motion was approved by unanimous consent.

Miller questioned whether now is the right time to request it, as people don't like work items being ongoing for many years. Sutter responded that the ISO time-frames are accelerated (24 months) and default (36 months) and extended, so we're in the middle of that.

When asked whether we will be able to vote out a PDTS for LFv2 in Lenexa if the current LFv2 ballot is ongoing, Sutter said they can be done in parallel and he will ensure it's done properly.

9-10. WG and SG sessions continue

Saturday, November 8, 8:30am-noon

11. Review of the meeting

Clamage opened the meeting.

Maurer was applauded for his provision of cookies throughout the week.

Clamage asked if anyone wants to reopen any of the straw polls for discussion of new information and to retake the poll. There were no requests, so the Friday motion approvals stand unchanged.

Clamage asked if there were any new reactions from PL22, Hedquist confirmed there were not.

Miller asked if there was any news on mailing list technology. Sutter replied that the majority of interest was for Mailman, which will be hosted by isocpp.org, reporting that testing is underway. Clamage asked if list permission will be via self-service and Sutter said it was probable. Clamage stated that Andy Koenig will be happy. Sutter thanked Koenig for managing the mailing lists which the room applauded.

11.1 WG21 motions

11.2 PL22.16 motions

11.3 Review of action items, decisions made, and documents adopted by the committee

11.4 Issues delayed until today

No issues.

12. Plans for the future

12.1 Next and following meetings

Sutter explained there would be a LWG meeting in Cologne, Germany, February 23-27, 2015 (Mo-Fr). Maurer presented details of the meeting. It is chilly in Germany at that time of year and The meeting is to be hosted by ParStream and Josuttis/Eckstein. A picture of the city and the venue were shown. Those attending are requested to register at the dooble.com page if they have not already done so, see c++std-all-4120 on the reflector. A show of hands indicated four people who are planning to come have not yet registered.

Liber requested a rough agenda for the Cologne meeting. Meredith said there was no new business, that there would be two tracks, one being review of the Networking TS proposal and the other being issue processing and pending LEWG papers. There would probably also be other TS-related library materials. There will be no actual status changes at the meeting, just move to "Ready" for quick final resolution in the subsequent meeting (Lenexa).

Sutter enquired about directions for running the meeting. Meredith requested a wiki page from EDG and requested a mid-meeting mailing. Maurer gave travel information, explaining that for many people the best option might be to fly into Frankfurt followed by a high-speed train ride. Lufthansa has an arrangement with German railways to treat Cologne Central Station as an airport with airport code QKL. Other airports are DUS and CGN. Vandevoorde said you can also get into BRU, stock up on real beer, then take the train to Cologne. Maurer directed people to N4153 (in the pre-Urbana mailing) for details. The link to the hotel is broken, so needs to be copy-pasted.

Sutter repeated the intention for a Concepts meeting in late January and said the next full WG21 meeting is in Lenexa, Kansas, USA (May 4-9, 2015). Clow pointed out that the week before the Lenexa meeting is C++Now, in Aspen, CO. The next meeting after that will be Kona, HI, USA. Oct. 19-24, hosted by Tom Plum. He is looking at Canary Wharf, London for Spring 2016 (coordinated with ACCU).

Sutter stated that he is still still convening two meetings per year as per earlier direction. Two meetings per year allows for smaller-group meeting in between (like Cologne). Sutter asked people to speak up for 3 meetings per year, receiving no significant reaction.

Sommerlad might be able to host another meeting in Rapperswil.

Voutilainen expressed a preference for three meetings per year rather than two meetings with nightly evening sessions.

Van Eerd noted that if there are many small-group meetings, he ends up traveling more because he is interested in all of them.

Meredith said he usually advocates for 3 meetings per year, but thinks that more meetings will just create more work.

Voutilainen suggested a meeting with no pre-meeting mailing. Sutter responded that mailings are still useful deadlines to give us time to "grok" new material, but that if we followed INCITS rules, we could object to late papers.

Brown made a plea for early feedback to authors if there is a strong opposition to paper and Sutter echoed the sentiment.

Meredith announced that LWG is going to have to 2 telecons, December 18 and January 29, at 8AM Pacific.

12.2 Mailings

November 21 is the post-meeting mailing deadline, February 6 is the mid-meeting mailing deadline and April 10th is the pre-Lenexa deadline.

Voutilainen asked if there is any change in the procedure to get paper numbers for the mailings. Sutter confirmed that requests for paper numbers should be sent to John Spicer now.

13. Adjournment

Clamage prepared to close the meeting and was given a standing ovation. Clamage mentioned that many new attendees had remarked positively about the collegial atmosphere at the meeting, despite disagreements. He said it was a highlight of his career.

Brown proposed to thank the host. Sutter expressed thanks to the hosts and others. Brown expression sincere thanks to all participants of the meeting, which was followed by a round of applause.

Meeting adjourned by unanimous consent.

14 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".

An "x" marks a day attended, for days unattended, the field is blank.

14.1 PL22.16 members

Company/Organization NB Representative M T W R F S WG21 PL22.16
AMDRobin Maffeo xxxxx PV
Argonne National LabHal Finkel xxxxxx PV
BloombergJohn Lakos xxxxxx PV
BloombergUKAlisdair Meredith xxxxxx A
BloombergUKDietmark Kühl xxxxxx A
BloombergNathan Myers xxx
BrownWalter Brown xxxxxx E
CERT Coordination CenterAaron Ballman xxxxxx PV
Cisco SystemsMartin Sebor xxxx PV
DinkumwareP.J. Plauger xxxxxx PV
DinkumwareTana Plauger xxxxxx A
DRW HoldingsNevin Liber xxxxxx PV
DRW HoldingsThomas Rodgers xxxxx A
Edison Design GroupJohn H. Spicer xxxxxx PV
Edison Design GroupDaveed Vandevoorde xxxxxx A
Edison Design GroupJens Maurer xxxxxx A
Edison Design GroupWilliam M. Miller xxxxxx A
Embarcadero TechnologiesDawn Perchik xxxxxx PV
Flight Safety InternationalBilly Baker xxxxxx PV
Gimpel SoftwareJames Widman xxxxxx A
GoogleMatthew Austern xxxxxx PV
GoogleChandler Carruth xxxxxx A
GoogleGeoffrey Romer xxxxxx A
GoogleHans Boehm xxxx A
GoogleJames Dennett xxxxx A
GoogleJeffrey Yasskin xxxxxx A
GoogleCAJF Bastien xxxxxx A
GoogleUKRichard Smith xxxxxx A
GoogleThomas Koeppe xxxxxx A
GoogleTitus Winters xxxxxx
GreenWireSoftJuan Alday xxxxxx PV
IBMCAMichael Wong xxxxxx PV
IBMPaul E. McKenney xxxx A
IBMCAHubert Tong xxxxxx
IBMMaged Michael x
Indiana UniversityLarisse Voufo x A
IntelClark Nelson xx PV
IntelArch Robison xxxxxx A
IntelPablo Halpern xxxxxx A
IntelRobert Geva xxxx A
KCG HoldingsRobert Douglas xxxx PV
Lawrence Livermore HoldingsMichael Kumbera xxxxx P
Lexmark InternationalMichael Price xxxxx PV
Louisiana State UniversityHartmut Kaiser xxxxx PV
Louisiana State UniversityAgustin Berge xxxxxx A
MicrosoftJonathan Caves xxxxxx PV
MicrosoftArtur Laksberg xxxxxx A
MicrosoftGabriel Dos Reis xxxxxx A
MicrosoftHerb Sutter xxxxxx A
MicrosoftStephan T. Lavavej xxxxxx A
MicrosoftGor Nishanov xxxxxx
Morgan StanleyBjarne Stroustrup xxxx PV
NVidiaJared Hoberock xxxx A
NVidiaOlivier Giroux xxxxxx A
OracleFedor Sergeev xxxxxx A
OracleStephen D. Clamage xxxxxx A
OracleVictor Luchangco xx A
PerennialBarry Hedquist xxxxxx PV
PerennialBeman G. Dawes xxxx A
PerennialLawrence Crowl xxxxx A
Plum HallThomas Plum xxxxxx PV
Plum HallFIVille Voutilainen xxxxxx A
Programming Research GroupChristof Meervald xxxxxx A
QualcommMarshall Clow xxxxxx PV
Red HatJason Merrill xxxxxx PV
Red HatUKJonathan Wakely xxxxxx A
Red HatTorvald Riegel xxxxxx A
Riverbed TechnologyOleg Smolsky xxxx PV
Riverbed TechnologyBob Kuo x A
Sandia National LabsCarter Edwards xxxxxx PV
SeymourBill Seymour xxxxx PV
SymantecMike Spertus xxx PV

14.2 Other WG21 members

Company/Organization NB Representative M T W R F S WG21 PL22.16
MozillaCABotond Ballo xxxxxx M
BlackberryCATony Van Eerd x M
CERNCHAxel Naumann xxxxxx M
Vollmann EngineeringCHDetlef Vollmann xxxxxx M
HSRCHPeter Sommerlad xxxxxx M
think-cell SoftwareDEFabio Fracassi xxxxxx
University Carlos IIIESJ. Daniel Garcia xxxxxx M
CryptotecFIMikael Kilpeläinen xxxxx M
UKChristopher Kohlhoff xxxxxx M
UKDinka Ranns xxxxxx M
PDT PartnersUKJeff Snyder xxxxxx M
UKJonathan Coe xxxx M
UKRoger Orr xxxxxx M

14.3 Participating non-members

Company/Organization NB Representative M T W R F S WG21 PL22.16
University of AkronAndrew Sutton xxxxxx
KitwareBen Boeckel xxxxxx
University of AkronBraden Obrzut xxxxxx
Taller TechnologiesDaniel Gutson xxxxx
Eric Kiselier x
Eric Niebler xxxx
Faisal Vali xxx
Thomson ReutersGina Stephens xx
Ripple LabsHoward E. Hinnant xxxxxx
John Wiegley xxxxx
YahooKyle Kloepper xx
Maurd Bianco xxxx
Frankfurt Inst. for Adv. Studies Matthias Kretz xxxxxx
Maurice Bos xxxx
Bob Taco IndustriesMichael McLaughlin xx
Nat Goodspeed xxxxx
Nicolai Josuttis xxxxxx
Roundhouse ConsultingPete Becker xxxxx
Roman Zulak x
Sjors Gielen xxxx
Zhihao Yuan xxxx