A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://cplusplus.github.io/LWG/issue3396 below:

Issue 3396: Clarify point of reference for source_location::current() (DE 169)

This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of C++20 status.

3396. Clarify point of reference for source_location::current() (DE 169)

Section: 17.8.2.2 [support.srcloc.cons] Status: C++20 Submitter: Jens Maurer Opened: 2020-02-13 Last modified: 2021-02-25

Priority: 2

View all other issues in [support.srcloc.cons].

View all issues with C++20 status.

Discussion:

Addresses DE 169

The expectation of the note that a default argument expression involving current() causes a source_location to be constructed that refers to the site of a function call where that default argument is needed has no basis in normative text. In particular, 9.2.3.6 paragraph 5 seems to imply that the name "current" and its semantics are bound where it appears lexically in the function declaration.

Proposed change: Add normative text to express the desired semantics.

[2020-02 Moved to Immediate on Thursday afternoon in Prague.]

Proposed resolution:

This wording is relative to N4849.

  1. Modify 17.8.2.2 [support.srcloc.cons] as indicated:

    static consteval source_location current() noexcept;
    

    -1- […]

    -2- Remarks: When a default member initializer is used to initialize a non-static data member, any calls to current Any call to current that appears as a default member initializer (11.4 [class.mem]), or as a subexpression thereof, should correspond to the location of the constructor definition or aggregate initialization that initializes the member uses the default member initializer. Any call to current that appears as a default argument (9.3.4.7 [dcl.fct.default]), or as a subexpression thereof, should correspond to the location of the invocation of the function that uses the default argument (7.6.1.3 [expr.call]). -3- [Note: When used as a default argument (9.3.4.7 [dcl.fct.default]), the value of the source_location will be the location of the call to current at the call site. — end note]

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4