If this actually compiles, it just initialises i with false, which apparently gets somehow converted to a null pointer value. Does the function work of you call it just as Func(some_string)?
@Angew: Indeed it does. Any integral constant expression equal to zero will convert to the null pointer. false is integral, constant, and equal to zero, so it meets all criteria.
@MSalters I don't know about C++03, but in C++11 [conv.ptr]p1: "A null pointer constant is an integral constant expression (5.19) prvalue of integer type that evaluates to zero or ..." (emphasis mine). bool is integral, but it's not an integer type.
iwithfalse, which apparently gets somehow converted to a null pointer value. Does the function work of you call it just asFunc(some_string)?falseis integral, constant, and equal to zero, so it meets all criteria.boolis integral, but it's not an integer type.