* The first and second versions are implicitly declared in every translation unit of a C++ program: The header <new> does not need to be included for them to be present.
* The first and second versions are also replaceable: A program may provide its own definition, that replaces the default one, to produce the result described above.
However, to use or replace the second version, std::nothrow_t is needed, which is only defined in <new>.
Is there a way to use or replace the second version without including <new>? I'm using a SunOS machine.