cplusplus / cplusplus/draft

[dcl.init]/7.1 Use of "initializer ()"

Open
#2,846 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

cwg
Dominant language
TeX
Stars
221
Forks
813
Avg merge
16h 4m
Merged PRs (30d)
36

Description

[dcl.init]/7.1 says:

To default-initialize an object of type T means:

  • If T is a (possibly cv-qualified) class type ([class]), constructors are considered. The applicable constructors are enumerated ([over.match.ctor]), and the best one for the initializer () is chosen through overload resolution ([over.match]). The constructor thus selected is called, with an empty argument list, to initialize the object.

This usage requires that () be a valid value for the grammar term initializer. This is not the case according to the initializer definition:

initializer:

  • brace-or-equal-initializer
  • ( expression-list )

expression-list cannot be empty, so () is not a valid initializer.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating [dcl.init]/7.1 and the cited definition of initializer in the draft sources. Check whether the wording is consistent with the grammar for an empty initializer, then update the affected standard text and verify that the cross-references and generated draft remain correct.

Written by the indexing model from the issue text.

Assessment

Tech stack
tex
Domain
documentation
Issue type
Documentation
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.