Title
result_of specification also needs a little cleanup
Status
c++20
Section
[depr.meta.types]
Submitter
Daniel Krügler

Created on 2017-03-04.00:00:00 last changed 37 months ago

Messages

Date: 2017-06-10.21:31:39

Proposed resolution:

This wording is relative to N4659.

  1. Change [depr.meta.types] as indicated:

    -4- The behavior of a program that adds specializations for any of the templates defined in this subclause is_literal_type or is_literal_type_v is undefined, unless explicitly permitted by the specification of the corresponding template.

Date: 2017-06-15.00:00:00

[ 2017-06-10, Moved to Tentatively Ready after 6 positive votes on c++std-lib ]

Date: 2017-04-15.00:00:00

[ 2017-04-24, Daniel provides wording ]

Instead of enumerating all the templates where adding a specialization is valid, a general exclusion rule is provided. Albeit currently not needed for the templates handled by this sub-clause, a potential exception case is constructed to ensure correctness for the first deprecated trait template that would permit specializations by the user.

Date: 2017-03-15.00:00:00

[ 2017-03-04, Kona ]

Set priority to 3

Date: 2017-03-04.00:00:00

P0604R0 missed a similar adjustment that was performed for the deprecated type trait templates is_literal_type and is_literal_type_v via LWG 2838:

Moving the result_of to Annex D means that the general prohibition against specializing type traits in [meta.type.synop]/1 does no longer exist, so should be explicitly spelled out. Wording will be provided after publication of the successor of N4640.

History
Date User Action Args
2021-02-25 10:48:01adminsetstatus: wp -> c++20
2017-07-30 20:18:47adminsetstatus: voting -> wp
2017-06-26 13:46:20adminsetstatus: ready -> voting
2017-06-10 21:31:39adminsetmessages: + msg9242
2017-06-10 21:31:39adminsetstatus: new -> ready
2017-04-24 18:14:25adminsetmessages: + msg9167
2017-04-24 18:14:25adminsetmessages: + msg9166
2017-03-14 03:14:09adminsetmessages: + msg9120
2017-03-04 00:00:00admincreate