This is needed because older versions of libc++ do not have these operators. If users target an older deployment target and try to compile programs in which these operators are explicitly called, the compiler will complain.
The following is the list of minimum deployment targets for the four OSes:
macosx: 10.13
ios: 11.0
tvos: 11.0
watchos: 4.0
I followed the other availability macros in using "strict", but I'm not sure this was the right decision. The documentation seems to recommend not using "strict" (it says that weakly-linking is almost always a better API choice).
rdar://problem/32664169
There is a lit configuration to choose whether to run with availability or not. We should just mark the test unsupported when we don't want it to run.
It's also important to run the rest of the suite with availability turned on, to see which other tests start to fail.