Title
Remove is_consteval_only
Status
immediate
Section
[meta.unary.prop][meta.reflection.traits]
Submitter
Tim Song

Created on 2026-03-24.00:00:00 last changed 4 days ago

Messages

Date: 2026-03-26.14:14:11

Proposed resolution:

This wording is relative to N5032.

  1. Modify [meta.type.synop], header <type_traits> synopsis, as indicated:

    […]
      // [meta.unary.prop], type properties
    […]
      template<class T> struct is_consteval_only;
    […]
      // [meta.unary.prop], type properties
    […]
      template<class T>
        constexpr bool is_consteval_only_v = is_consteval_only<T>::value;
    […]
    
  2. Modify [tab:meta.unary.prop], Table 54 — Type property predicates as indicated:

    TemplateConditionPreconditions
    template<class T>
    struct is_consteval_only;
    T is consteval-only ([basic.types.general]) remove_all_extents_t<T> shall be a complete type or cv `void`.
  3. Modify [meta.syn], header <meta> synopsis, as indicated:

    […]
      // associated with [meta.unary.prop], type properties
    […]
      consteval bool is_consteval_only_type(info type);
    […]
    
  4. Modify [meta.reflection.traits] as indicated:

    […]
      // associated with [meta.unary.prop], type properties
    […]
      consteval bool is_consteval_only_type(info type);
    […]
    

    -3- […]

Date: 2026-03-26.14:14:11

[ Croydon 2026-03-26; move to Immediate. ]

Date: 2026-03-24.00:00:00
Addresses US 81-149.

In light of recent EWG polls related to consteval-only types, it would be improvident to ship this trait in C++26. This also resolves the NB comment requesting respecification of its precondition.

History
Date User Action Args
2026-03-26 14:14:11adminsetmessages: + msg16096
2026-03-26 14:14:11adminsetstatus: new -> immediate
2026-03-25 01:29:44adminsetmessages: + msg16066
2026-03-24 00:00:00admincreate