The current code enables aligned allocation functions when compiling in C++17
and later. This is a problem because aligned allocation functions might not
be supported on the target platform, which leads to an error at link time.
Since r338934, Clang knows not to define __cpp_aligned_new when it's not
available on the target platform -- this commit takes advantage of that to
only use aligned allocation functions when they are available.
I think I'd rather keep __cpp_aligned_new >= 201606 check. I don't know about cases where the smaller value is possible, Clang always had 201606 as far as I (and SVN) know. But it seems to be safer and more correct.
Don't have objective arguments for keeping the check, so if you think it's not worth it, I trust your judgement.