ayermolo added a comment. OK was able to create small(ish) repro
main.h #include <type_traits> enum class Enums { ACCESS = 0, MAP = 1, }; template <typename TDM,typename TM, Enums kStrategy = Enums::MAP> class DMap { public: template <typename TIDR> requires std::is_convertible_v<TIDR, TDM> void getOrCreate(TIDR v); }; template <typename TDM, typename TM> class DMap<TDM, TM, Enums::ACCESS> { public: template <typename TIDR> requires std::is_convertible_v<TIDR, TDM> void getOrCreate(TIDR v); }; main.cpp #include "main.h" // broken with original patch, broken with follow up fix template <typename TDM, typename TM, Enums kStrategy> template <typename TIDR> requires std::is_convertible_v<TIDR, TDM> inline void DMap<TDM, TM, kStrategy>::getOrCreate(TIDR v) { } // broken with original patch, fixed with follow up fix template <typename TDM, typename TM> template <typename TIDR> requires std::is_convertible_v<TIDR, TDM> inline void DMap<TDM, TM, Enums::ACCESS>::getOrCreate(TIDR v) { } int foo() { DMap<int, int> map; long i; map.getOrCreate(i); } CHANGES SINCE LAST ACTION https://reviews.llvm.org/D147722/new/ https://reviews.llvm.org/D147722 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits