Why does the following code fail to compile? Even though it is legal to do void* ptr = 0;
void* ptr = 0;
template void func(); int main() {