[libcxx-commits] [clang] [libcxx] [Clang] Implement CWG2369 "Ordering between constraints and substitution" (PR #102857)
Hans Wennborg via libcxx-commits
libcxx-commits at lists.llvm.org
Wed Jan 8 06:50:43 PST 2025
zmodem wrote:
Here's what I got from creduce:
```
$ cat /tmp/a.ii
template <class, class _Up>
using compare_three_way_result_t = _Up ::type;
struct __sfinae_assign_base {};
template <class _Tp>
concept __is_derived_from_optional =
requires(_Tp __t) { []<class _Up>(_Up) {}(__t); };
template <class _Tp, class _Up>
requires(__is_derived_from_optional<_Up>)
compare_three_way_result_t<_Tp, _Up> operator<=>(_Tp, _Up);
struct RuntimeModeArgs {
auto operator<=>(const RuntimeModeArgs &) const = default;
__sfinae_assign_base needs_admin;
};
$ build/bin/clang.bad -cc1 -triple x86_64-pc-windows-msvc19.34.0 -emit-obj -fms-extensions -fms-compatibility -std=c++20 -w /tmp/a.ii
/tmp/a.ii:12:1: error: cannot mangle this dependent name type yet
12 | compare_three_way_result_t<_Tp, _Up> operator<=>(_Tp, _Up);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
```
https://github.com/llvm/llvm-project/pull/102857
More information about the libcxx-commits
mailing list