C ++ 17 latest progress report

Source: Internet
Author: User

C ++ 17 latest progress report

The C ++ Standards Committee recently held a meeting in kona, Hawaii, where everyone may be concerned about the latest developments. However, according to the past, some documents will take a long time to be made public. During the meeting, everyone was busy revising their documents. After the meeting, the Conference will collect and release the modified documents several weeks later. But this time, the Commission modified their systems, so it was very simple to get files of earlier versions, and these emails were published.

I have collected and organized this information from the official website without any subjective comments from me. If you want to know the main content of this Meeting, please read the following content. I already know the vast majority of content about the C ++ 17 library, but it still takes some time to write all of them)

C ++ 17 core library files

  • P0001R1 discard the register keyword

  • The P0002R1 bool type does not support ++ operators.

  • P0012R1 becomes part of the type system, version 5

  • P0061R1 supports _ has_include

  • P0134R0 introduce the non-static member variable copy constructor // not sure

  • P0136R1 override the inherited Constructor (core issue 1941 et al)

  • P0160R0 Delete the preset value of The unary operator // Wording for removing defaults for unary folds

C ++ 17 library related files

  • P0004R1 discards the alias of outdated iostreams

  • P0006R0 adopts the type feature variable template based on the Standard Library Specification

  • P0092R1 Optimization

  • P0007R1 Constant View: A: as_const helper function Template

  • P0156R0 variable lock_guard (Rev. 3)

  • P0074R0 makes std: owner_less more flexible

  • P0013R1 logical operator type feature (revision 1)

Library basic Specification Version 2 File

  • N4531 replace std: rand, version 3

  • P0013R1 logical operator type feature (revision 1) [C ++ 17 Voting pass]

  • These files will be applied to draft N4529 and a vote on the technical specifications of the proposed draft will be conducted.

Concurrency Specification

  • P0159R0 will be released as a concurrency technical specification, which may be slightly changed at that time.

Parallel specification v2

  • Draft n1_5 and "Task Block R5" of P0155R0 are responsible for this work.

Network specifications

  • Draft p01_r1 is responsible for this.

Scope Specification

  • Draft P0021R0 is responsible for this work.

Core topics

  • 1274. Common Non-terminator expressions and embedded initialization lists

  • 1391. Conversion from non-derivation template parameters to parameter types

  • 1722. Should lambda function pointer conversion be no exception?

  • 1847. Declared consistency during partial sorting

  • 1863. the type of the thrown object should support std: current_exception ()

  • 1949. "sequenced after" instead of "sequenced before"

  • 1975. Allow declaring the exception type

  • 1981. implicit and explicit context Conversion

  • 1990. Ambiguity Caused by decl-specifier-seq

  • 2000. # names of header files other than include

  • 2004. Variables with variable members in the always-on Expression

  • 2006. Cv-qualified void type

  • 2015. odr-use of virtual functions

  • 2016. possible ambiguity in the description of the type Conversion Function

  • 2019. omitted member references in the storage time Description

  • 2024. Parameter packages of dependency types and unreleased packages

  • 2026. Zero-initialization and constexpr

  • 2027. Unknown requirements for multiple alignas instances

  • 2031. & incompatible

  • 2052. Derivation of template parameters vs heavy-duty operators

  • 2075. Pass the short initialization list to the array reference parameter

  • 2101. Error description on dependency between types and values

  • 2120. array as the first non-static member variable of the standard layout class

Library topic

  • 1169. num_get cannot be fully compatible with strto *

  • 2072. Ambiguous definition of Buffer Capacity

  • 2101. Some type conversions may produce unexpected types

  • 2111. Which of the deleted handles may be called when an exception is handled?

  • 2119. the hash function is missing for the extended int type.

  • 2127. Move-construction with raw_storage_iterator

  • 2133. Reload the comma iterator

  • 2156. the unordered container reserve (n) Stores n-1 elements.

  • 2218. How containers use allocator_traits: construct () is not clear enough

  • 2219. INVOKE-ing a pointer with reference_wrapper as an object expression

  • 2224. Status of inactive objects

  • 2234. assert () should be allowed in a regular expression

  • 2244. about the issue of basic_istream: seekg

  • Follow-up in 2250. Library Issue 2207

  • Member functions in Rule 2259.17.6.5.5

  • 2273. Ambiguity of regex_match

  • 2336. is_trivially_constructible/is_trivially_assignable the result is always false

  • 2353. std: The limit on next is excessive.

  • 2367. When pair and tuple have no parameters, they are not compatible with is_constructible.

  • 2380. <cstdlib> should long: abs (long) and long: abs (long) be provided?

  • 2384. Better specification is required for removing the function from the distributor.

  • 2385. function: The assign distributor parameter is meaningless.

  • 2435. The reference_wrapper: operator () flag should be deleted

  • 2447. distributor and Volatile-qualified value types

  • 2462. std: ios_base: failure over-regulated

  • 2466. allocator_traits: max_size () default performance is incorrect

  • 2469. The [] operator and unordered_map rule of map are incorrect.

  • 2473. basic_filebuf compatibility with C files

  • 2476. scoped_allocator_adaptor is unallocable

  • 2477. std: vector: erase () and std: deque: erase () are inconsistent

  • 2483. throw_with_nested () should use is_final

  • 2484. rethrow_if_nested () is unfeasible

  • 2485. Constant tuple & get should be reloaded)

  • 2486. mem_fn () should provide forward compatibility

  • 2487. bind () should not be cv-overloaded, but const-overloaded

  • 2489. mem_fn () should be notest

  • 2492. clarify the requirements of comp

  • 2495. There is no such thing as an exception security element.

Library Fundamentals TS v2 Issues

  • 2494. [fund. ts. v2] ostream_joiner should be notest

  • 2500. [fund. ts. v2] fundts. memory. smartptr. shared. obs/6 should apply to cv-unqualified void

  • 2515. [fund. ts. v2] The Definite Operator of observer_ptr cannot match any introduction

  • 2517. [fund. ts. v2] Two propagate_const assignment operators return incorrect types

  • 2526. [fund. ts] experimental: function: swap condition incorrect

More information

The above is only a part of the voting records. Each meeting will involve a lot of work and will not all be reflected in files. For example, there is no heated discussion file about modules. Although I spent almost all my time in the library Workgroup, I still cannot follow up on everything. For the final version file, I will share the progress of each module in Reddit.

The author of this article can answer most questions about the database, but the reply may be slightly delayed. It can be determined that the database availability is improved. Everything looks as gentle and cute as a kitten, but if you look at the heavy load collection, you will find these ambiguous things are a disaster. LWG2451 is an excellent example defined in the standard library. optional <string> opt_str = "meow"; not implemented yet. There is no problem with the Basic specification, but the optional ship-stopper does not comply with international standards. At this meeting, the LWG realized that some issue had an impact on variant, and the problem involved basic specifications. Of course, the meeting will solve these problems and you do not have to experience these pains.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.