[PATCH] D119544: Deferred Concept Instantiation Implementation
Erich Keane via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon May 2 13:42:27 PDT 2022
erichkeane added a comment.
I was able to find a reproduction of the problem:
template<typename T, typename U>
struct is_same { static constexpr bool value = false; };
template<typename T>
struct is_same<T,T> { static constexpr bool value = false; };
template<typename T, typename U>
concept same_as = is_same<T, U>::value;
template <class _Tp>
struct __range_adaptor_closure {
template </*ranges::viewable_range */typename _View, typename _Closure>
requires same_as<_Tp, _Closure>
friend constexpr decltype(auto) operator|(_View&& __view, _Closure&& __closure){};
};
struct A : __range_adaptor_closure<A>{};
struct B : __range_adaptor_closure<B>{};
As far as I can tell, there is nothing wrong with the libc++ code, so I have to figure out why after this patch that the requires clause doesn't realize these are different.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D119544/new/
https://reviews.llvm.org/D119544
More information about the cfe-commits
mailing list