| Issue |
91787
|
| Summary |
[clang][regression][rejects-valid] clang trunk rejecting valid pack expansion
|
| Labels |
clang
|
| Assignees |
|
| Reporter |
ericniebler
|
I believe the following C++20 code should compile:
```c++
template <class...>
concept True = true;
template <bool>
struct I {
template <template <class...> class F, class... As>
using f = F<As...>;
};
template <template <class...> class F, class... As>
using meval = I<True<As...>>::template f<F, As...>;
template <class F, class... As>
concept P = true;
template <class F, class... As>
requires P<F, As...>
using V = void;
template <class...Ts>
auto f() -> meval<V, int, Ts...> {
}
int main() {
f();
}
```
Clang 18 and earlier accepts it, as does gcc. With clang-trunk, I get:
```
<source>:10:29: error: pack expansion used as argument for non-pack parameter of alias template
10 | template <template <class...> class F, class... As>
| ^
1 error generated.
Compiler returned: 1
```
See repro here: https://godbolt.org/z/c1dG74EPd
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs