Evaluating a throw-expression with an operand throws an
exception ([except.throw]); the type of the exception object is determined by removing
any top-level cv-qualifiers from the static type of the
operand and adjusting the type
from “array of T” or function type T
to “pointer to T”.