clang -std=c++1z
accepts
void foo();
template <auto f>
struct F {};
int main()
{
F<+[](){foo();}> f;
}
Note the +
to force the conversion to function pointer.
But gcc 7.1 rejects it error: lambda-expression in template-argument
.
Which one is right?