Both C and C++ standard suggest that the macro
STDC_ISO_10646 should be defined when
wchar_t can represent all unicode characters.
Because pending D93031, clang only support
UTF-16 or UTF-32 as the wide execution encoding,
wchar_t can represent all Unicode characters
whenever wchar_t is at least 21 bits.
But clang only seem to support 2 or 4 bytes
wchar_t so only define STDC_ISO_10646
when wchar_t is at least 4 bytes.
The value is rather meaning less as
the version of Unicode is unlikely affect
its codespace, or we would have bigger problems.
We set it to the publication of Unicode 13.
Note that this define was set up already
in the CloudABI target.
This project seems unmaintained,
and for the sake of simplicity i elected to change
the value used there.
(only the presence of the macro is likely to be checked).
When D93031 is approved this code can be
extended to check a user defined wide execution
encoding. We could also imagine a per-target (OS)
default wide execution encoding. EG for wide ebcdic.
Are we going to have to remember to update this value each time Unicode updates?