A RetroSearch Logo

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

Search Query:

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

Exposition-only concepts are not described in library intro

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

3818. Exposition-only concepts are not described in library intro

Section: 16.3.3 [conventions] Status: C++23 Submitter: Tim Song Opened: 2022-11-08 Last modified: 2023-11-22

Priority: Not Prioritized

View all issues with C++23 status.

Discussion:

This is the resolution for GB-074.

The comment is:

[expos.only.func] introduces exposition-only function templates. [expos.only.types] introduces exposition-only types. 16.3.3.6 [objects.within.classes] introduces exposition-only private members.

There is nothing about exposition-only concepts, despite them being used extensively in the library clauses. The same problem exists for exposition-only variable templates.

[Kona 2022-11-08; Move to Immediate status]

Previous resolution [SUPERSEDED]:

  1. Modify [expos.only.func] as indicated, changing the stable name:

    16.3.3.2 Exposition-only functions entities [expos.only. func entity]

    -1- Several function templates entities defined in 17 [support] through 32 [thread] and D [depr] are only defined for the purpose of exposition. The declaration of such a function an entity is followed by a comment ending in exposition only.
  2. Strike [expos.only.types] as redundant:

    16.3.3.3.2 Exposition-only types [expos.only.types]

    -1- Several types defined in 17 [support] through 32 [thread] and D [depr] are defined for the purpose of exposition. The declaration of such a type is followed by a comment ending in exposition only. [Example 1:
    namespace std {
      extern "C" using some-handler = int(int, void*, double);  // exposition only
    }
    

    The type placeholder some-handler can now be used to specify a function that takes a callback parameter with C language linkage. — end example]

[2022-11-09 Tim reopens]

During LWG review of 3753(i), it was pointed out that typedef-names are not necessarily entities.

[Kona 2022-11-11; Move to Immediate]

[2022-11-12 Approved at November 2022 meeting in Kona. Status changed: Immediate → WP.]

Proposed resolution:

This wording is relative to N4917.

  1. Modify [expos.only.func] as indicated, changing the stable name:

    16.3.3.2 Exposition-only functions entities, etc. [expos.only. func entity]

    -1- Several function templates entities and typedef-names defined in 17 [support] through 32 [thread] and D [depr] are only defined for the purpose of exposition. The declaration of such a function an entity or typedef-name is followed by a comment ending in exposition only.
  2. Strike [expos.only.types] as redundant:

    16.3.3.3.2 Exposition-only types [expos.only.types]

    -1- Several types defined in 17 [support] through 32 [thread] and D [depr] are defined for the purpose of exposition. The declaration of such a type is followed by a comment ending in exposition only. [Example 1:
    namespace std {
      extern "C" using some-handler = int(int, void*, double);  // exposition only
    }
    

    The type placeholder some-handler can now be used to specify a function that takes a callback parameter with C language linkage. — end example]


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