Skip to content

[special] multiple concepts conflated in same paragraph #379

Closed
@zygoloid

Description

@zygoloid
Member

From Gaby:

Paragraph 12.4/5 defines two unrelated concepts:

  1. a defaulted destructor that is defined as deleted;
  2. the notion of trivial destructors

They should have their own paragraphs.

The same applies in other places in clause 12: see, for instance, 12.1/4, which specifies

  1. what a defaulted constructor is
  2. when a default constructor is implicitly declared and how it behaves
  3. when a defaulted default constructor is deleted
  4. when a defaulted default constructor is trivial

I think at least (3) and (4) should be in their own paragraphs. I have no particular opinion about whether (1) and (2) should be split up, but my inclination is to keep them together since the fact that you implicitly get a default constructor in some cases is fairly fundamental to the notion of a default constructor.

12.8 paragraphs 7-12 are a bit better (the 'deleted' and 'trivial' determination are already in their own paragraphs), but paragraph 11 is a bit confused: its opening sentence is about implicitly-declared constructors ("...is an inline public member..."), but the rest of the paragraph is about implicitly deleting defaulted constructors, which happens for non-implicitly-declared constructors too. The opening sentence of paragraph 11 would fit much better in, say, paragraph 7.

Activity

jensmaurer

jensmaurer commented on Nov 13, 2016

@jensmaurer
Member

12.4p5 is fixed already.
I've split up (3) and (4) in 12.1p4.
The first sentence of 12.8p11 is not moved earlier, because the concept of an implicitly-declared move constructor is introduced as late as p9. p11 is the first place where we talk about both copy and move constructors. We could have a separate paragraph for the first sentence of p11, but that gets us a questionable paragraph with a single sentence. In short, no changes to 12.8p11.

added a commit that references this issue on Nov 13, 2016
eb4117b
added a commit that references this issue on Nov 13, 2016
c1998d3
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @zygoloid@jensmaurer

        Issue actions

          [special] multiple concepts conflated in same paragraph · Issue #379 · cplusplus/draft