http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51936

--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> 2012-01-21 
20:23:27 UTC ---
The standard says in [expr.reinterpret.cast]
"A function pointer can be explicitly converted to a function pointer of a
different type. The effect of calling a function through a pointer to a
function type (8.3.5) that is not the same as the type used in the definition
of the function is undefined."

So I think the program has undefined behaviour.  Because you never call
asd<int,0> as part of a valid expression it doesn't need to be instantiated.


Clang++ fails in the same way as G++ 4.6, but it works with G++ 4.7

Reply via email to