Open davidmatson opened 4 days ago
@llvm/issue-subscribers-clang-frontend
Author: David Matson (davidmatson)
CWG1390 seems relevant here. Is std::void_t<anything>
a dependent type? Also CWG1797 and its related issues, in which CWG is considering having two different kinds of alias templates depending on whether they're "simple" enough, with "simple" ones eagerly expanded and the rest remaining opaque and dependent until the arguments are known.
But prior to the resolution of those issues, I think Clang is wrong here: void_t<dependent>
is a dependent type, even though it's "equivalent to" the non-dependent type void
, and so the two declarations are not equivalent.
https://godbolt.org/z/KM9xEd6q6
The above code complies on both MSVC and GCC.
The code above is from the cpp-async project (see microsoft/cppasync#20).
Is the above code valid, or are MSVC and GCC mistaken to accept it?