>> t += 10.0;
The implicit boolean conversion returns an rvalue, so that wouldn't be a problem.
>> int* p = NULL;
>> p = p + a;
A double doesn't implicitly convert to an int, so no go there, either.
Mind you, there may be situations where you want to prevent even the most unlikely conversions, and in those cases you could use something more robust, such as the "safe bool idiom". But for many classes, a simple double_hack (or similar) will suffice, eg: adding numbers to the object and other such operations don't even make sense in the context of the class, so why bother?