A prvalue of arithmetic, unscoped enumeration, pointer, or pointer to member
type can be converted to a prvalue of type 
bool.  A zero value, null
pointer value, or null member pointer value is converted to 
false; any
other value is converted to 
true.  For
direct-initialization (
[dcl.init]), a prvalue of type
std::nullptr_t can be converted to a prvalue of type
bool; the resulting value is 
false.