This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21 Core Issues List revision 119a. See http://www.open-std.org/jtc1/sc22/wg21/ for the official list.

2026-01-24


3150. Incomplete consteval-only class types

Section: 6.9.1  [basic.types.general]     Status: drafting     Submitter: Jakub Jelinek     Date: 2026-01-19

(From submission #836.)

A class type is consteval-only depending on its member types. However, a class type may be incomplete, and thus the question cannot be answered where needed.

For example,

  struct S;
  void f(S*);   // #1
  struct S {    // #2
    std::meta::info x;
  };

Does the class definition at #2 make the function declaration #1 retroactively ill-formed? What if #1 and #2 are not mutually reachable?