This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21 Core Issues List revision 112e. See for the official list.


2446. Questionable type-dependency of concept-ids

Section:  [temp.dep.expr]     Status: C++20     Submitter: Hubert Tong     Date: 2019-02-03

[Accepted at the February, 2020 (Prague) meeting.]

The rules for type-dependency do not appear to take the bool type associated with concept-ids into account. For example:

  template <typename T> concept C = true;
  template <typename T> struct A;
  template <> struct A<bool> { using type = bool; };

  template <typename T>
  void f(A<decltype(C<T>)>::type); // error: needs typename to avoid vexing parse

Proposed resolution (February, 2020):

  1. Change [temp.dep.expr] paragraph 3 as follows:

  2. An id-expression is type-dependent if it is not a concept-id and it contains

  3. Change [temp.dep.constexpr] paragraph 3 as follows:

  4. An id-expression is value-dependent if: