Title
Deprecating a concept
Status
c++23
Section
13.7.9 [temp.concept]
Submitter
Eric Niebler

Created on 2018-12-10.00:00:00 last changed 9 months ago

Messages

Date: 2022-11-20.07:54:16

Proposed resolution (approved by CWG 2022-10-21):

  1. Change in 9.12.5 [dcl.attr.deprecated] paragraph 2 as follows:

    The attribute may be applied to the declaration of a class, a typedef-name, a variable, a non-static data member, a function, a namespace, an enumeration, an enumerator, a concept, or a template specialization.
  2. Change in 13.7.9 [temp.concept] paragraph 1 as follows:

    A concept is a template that defines constraints on its template arguments.
    concept-definition:
        concept concept-name attribute-specifier-seqopt = constraint-expression ;
    
    concept-name:
        identifier
    
    A concept-definition declares a concept. Its identifier becomes a concept-name referring to that concept within its scope. The optional attribute-specifier-seq appertains to the concept.
Date: 2022-11-20.07:54:16

CWG telecon 2022-10-07:

Agreed.

Date: 2022-11-15.00:00:00

[Accepted as a DR at the November, 2022 meeting.]

The grammar for a concept-definition does not include an attribute-specifier-seqopt, making it impossible to deprecate an attribute. This seems like an oversight.

History
Date User Action Args
2023-07-16 13:00:43adminsetstatus: open -> c++23
2023-07-16 13:00:43adminsetstatus: drwp -> open
2023-02-18 18:43:04adminsetstatus: dr -> drwp
2022-11-25 05:14:04adminsetstatus: ready -> dr
2022-11-20 07:54:16adminsetmessages: + msg7040
2022-10-21 20:41:10adminsetmessages: + msg6952
2022-10-21 20:41:10adminsetstatus: open -> ready
2018-12-10 00:00:00admincreate