If a function template is marked as deleted, is it allowed to explicitly instantiate it as in the example:
template<class T>
int foo(T) = delete;
template int foo(int);
Clang and GCC allows it, while MSVC prints the error:
error C2280: 'int foo<int>(int)': attempting to reference a deleted function
Demo: https://gcc.godbolt.org/z/49hfqnr4f
Which compiler is right here?