Looks like the compiler here can't simultaneously do template inference, overload resolution and implicit conversion. I guess C++ somehow copes with that?