[PATCH] D126907: Deferred Concept Instantiation Implementation Take 2

Erich Keane via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Jun 21 11:40:00 PDT 2022


erichkeane added a comment.

Note that the failure comes down to:

  template<typename T> concept C = T::f();
  template<template<C> class P> struct S1{};
  template<C> struct X{};
  S1<X> s11;

and requires the -frelaxed-template-template-args flag:

  [ekeane1 at scsel-clx-24 build]$  ./bin/clang -cc1 -std=c++20 temp.cpp -frelaxed-template-template-args
  temp.cpp:5:4: error: template template argument 'X' is more constrained than template template parameter 'P'
  S1<X> s11;
     ^
  temp.cpp:3:29: note: 'P' declared here
  template <template<C> class P> struct S1{};
                              ^
  temp.cpp:4:20: note: 'X' declared here
  template<C> struct X{};
                     ^
  1 error generated.




CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D126907/new/

https://reviews.llvm.org/D126907



More information about the cfe-commits mailing list