The simple test expression:
is expected to compile, but libc++ rejects this as 'void' is not a complete type.
According to the standard, the requirements on "Fn" are:
"Fn and all types in the template parameter pack ArgTypes shall be complete types, cv void, or arrays of unknown bound."
This may be boiler-plate standardese for handling incomplete types that merits an LWG issue instead, but note that gcc handles this case correctly.
The text was updated successfully, but these errors were encountered:
assigned to @mclow
Sorry, something went wrong.
Oops, please withdraw - it turns out I was accidentally compiling with the Apple default Clang 6, which presumably predates the standard changing. Clang 7 lib handles this correctly.
Sorry for the noise.
Aaargh! Even more noise - and a resubmit!
It is still failing, but for a different reason since Clang 7.
Looks like my successful build was an off-by-one in my command line history and I re-ran the gcc test.
Minor nit: I was unable to reproduce this as submitted. But when I spelled it correctly ("is_invocable_v"), then I got the error.
https://llvm.org/D57364 up for review.
You may want to add an abominable function to the test harness, as it seems they also fail, e.g.,
int( ) &
int( ) & noexcept
int(...) & noexcept
Fixed in r352522.
Successfully merging a pull request may close this issue.