ISO/IEC JTC1 SC22 WG21 P1076R0
Jens Maurer <Jens.Maurer@gmx.net>
Target audience: CWG, LWG
2018-05-05
P1076R0: Editorial clause reorganization
Introduction
This paper summarizes the planned editorial rearrangements of the C++
Working Draft that lead to top-level clause renumbering.
Planned changes
[conv] Standard conversions
- Move [conv] as a subclause into [expr], immediately before
[expr.arith.conv].
[class] Classes
- Move [class.derived] into [class].
- Move [class.access] into [class.mem].
- From [special], move [class.ctor], [class.conv], [class.dtor]
into [class.mem].
- From [special], move [class.init], [class.cdtor], [class.copy],
[class.compare], [class.free] into [class].
- From [special], move [class.temporary] to the end of
[basic.memobj].
- Move front matter of [special] to a new subclause in
[class.mem].
New layout for [class] Classes:
- [class.name] Class names
- [class.mem] Class members
- [class.mfct] Member functions
- [class.mfct.non-static] Non-static member functions
- [special] Special member functions
- [class.ctor] Constructors
- [class.conv] Conversions
- [class.dtor] Destructors
- [class.static] Static members
- [class.bit] Bit-fields
- [class.nest] Nested class declarations
- [class.nested.type] Nested type names
- [class.access] Class member access
- [class.derived] Derived classes
- [class.union] Unions
- [class.init] Initialization
- [class.cdtor] Construction and destruction
- [class.copy] Copying and moving class objects
- [class.compare] Comparisons
- [class.free] Free store
- [class.local] Local class declarations
[dcl.dcl] Declarations and [dcl.decl] Declarators
- Move [namespace.udecl] into [dcl.dcl] (one level up).
- Move [dcl.decl] into [dcl.dcl], immediately after [dcl.spec].
- Move [dcl.init] into [dcl.dcl], immediately after [dcl.decl].
- Move [dcl.fct.def] and [dcl.struct.bind] into [dcl.dcl].
New layout for [dcl.dcl] Declarations:
- [dcl.spec] Specifiers
- [dcl.decl] Declarators
- [dcl.init] Initializers
- [dcl.struct.bind] Structured bindings
- [dcl.fct.def] Function definitions
- [dcl.enum] Enumeration declarations
- [namespace.udecl] The using declaration
- [dcl.asm] The asm declaration
- [dcl.link] Linkage specifications
- [dcl.attr] Attributes
Standard library
- Move [re] into [strings]. Some have expressed weak concerns.
- Promote [time] to a top-level clause.
- Move [localization] into [input.output], immediately after [syncstream].
- Move [numeric.ops] into [algorithms], immediately after [alg.sorting].
- Some suggest to promote [filesystems] to a top-level clause.
Excluded
The following actions are expressly not proposed:
- Move [atomic] into [thread].