Skip to content

[special] multiple concepts conflated in same paragraph #379

Closed
@zygoloid

Description

@zygoloid

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.

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

    Issue actions