Fix passing a double to function expecting a float.
Change the clang default to request bool rather than _Bool

A somewhat odd 'feature' of clang is that unless you request the qualified name
of an entity, clang use the default LangOpts to do the printing.  So the only
way to guarantee that we never see _Bool is to hardcode out own new default.
Move declaration to where we need it
Properly request the const version of method.

When the method is known to be const we need to cast the object pointer to a
const pointer to insure the compiler we look for the function we really want.