Created on 2022-11-08.00:00:00 last changed 12 months ago
Proposed resolution:
This wording is relative to N4917.
Modify [expos.only.func] as indicated, changing the stable name:
16.3.3.2 Exposition-only
-1- Severalfunctionsentities, etc. [expos.only.funcentity]function templatesentities and typedef-names defined in [support] through [thread] and [depr] are only defined for the purpose of exposition. The declaration of sucha functionan entity or typedef-name is followed by a comment ending in exposition only.
Strike [expos.only.types] as redundant:
16.3.3.3.2 Exposition-only types [expos.only.types]-1- Several types defined in [support] through [thread] and [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-12 Approved at November 2022 meeting in Kona. Status changed: Immediate → WP. ]
[ Kona 2022-11-11; Move to Immediate ]
[ 2022-11-09 Tim reopens ]
During LWG review of 3753, it was pointed out that typedef-names are not necessarily entities.
[ Kona 2022-11-08; Move to Immediate status ]
Previous resolution [SUPERSEDED]:
Modify [expos.only.func] as indicated, changing the stable name:
16.3.3.2 Exposition-only
-1- Severalfunctionsentities [expos.only.funcentity]function templatesentities defined in [support] through [thread] and [depr] are only defined for the purpose of exposition. The declaration of sucha functionan entity is followed by a comment ending in exposition only.Strike [expos.only.types] as redundant:
16.3.3.3.2 Exposition-only types [expos.only.types]-1- Several types defined in [support] through [thread] and [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]
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. [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.
History | |||
---|---|---|---|
Date | User | Action | Args |
2023-11-22 15:47:43 | admin | set | status: wp -> c++23 |
2022-11-17 00:42:33 | admin | set | messages: + msg13096 |
2022-11-17 00:42:33 | admin | set | status: immediate -> wp |
2022-11-12 00:59:59 | admin | set | messages: + msg13029 |
2022-11-12 00:59:59 | admin | set | status: open -> immediate |
2022-11-10 03:18:56 | admin | set | messages: + msg12989 |
2022-11-10 03:18:56 | admin | set | status: immediate -> open |
2022-11-08 23:01:49 | admin | set | messages: + msg12968 |
2022-11-08 23:01:49 | admin | set | status: new -> immediate |
2022-11-08 15:29:35 | admin | set | messages: + msg12954 |
2022-11-08 00:00:00 | admin | create |