mirror of
https://github.com/boostorg/config.git
synced 2026-08-22 21:13:33 +02:00
When clang targets MSVC compatibility (clang-cl, so _MSC_VER is defined) and
is built with /Zc:wchar_t- , wchar_t is an alias for unsigned short rather than
a distinct intrinsic type, and _NATIVE_WCHAR_T_DEFINED is not defined.
In that configuration Boost emits a separate is_integral<wchar_t> (and related
is_signed/is_unsigned/integer_traits/... ) specialization that collides with the
unsigned short one, producing errors such as:
redefinition of 'is_integral<unsigned short>'
visualc.hpp already guards against this by defining BOOST_NO_INTRINSIC_WCHAR_T
when _NATIVE_WCHAR_T_DEFINED is absent; clang.hpp was missing the equivalent
guard. Mirror the visualc.hpp behaviour here. The guard is scoped to _MSC_VER so
it is a no-op for native-wchar_t builds and for non-MSVC clang targets.