The XFAIL comments about VCRuntime not providing aligned operator new
are outdated; these days VCRuntime does provide them.
However, the tests used to fail on Windows, as the pointers allocated
with an aligned operator new (which is implemented with _aligned_malloc
on Windows) can't be freed using std::free() on Windows (but they need
to be freed with the corresponding function _aligned_free instead).
Instead override the aligned operator new to return a dummy suitably
aligned pointer instead, like other tests that override aligned operator
new.
Also override operator delete[] instead of plain operator delete
in the array testcase; the fallback from operator delete[] to
user defined operator delete doesn't work in all DLL build
configurations on Windows.
By providing the aligned operator new within the tests, this also makes
these test cases pass when testing back deployment on macOS 10.9.
I don't think we need TEST_THROW_SPEC at all, since this isn't tested in C++03 mode.
Same goes for TEST_NOEXCEPT -- it can just be turned into noexcept.