msvc and known_semantics are not reserved identifiers in the C++ Standard, so users are allowed to #define them to anything, which may break every header that directly uses [[msvc::known_semantics]] (e.g. <type_traits>).
IIUC the Standard equivalently requires that every non-Standard attribute used in a Standard header to be spelled in reserved identifiers, e.g. [[__msvc__::__known_semantics__]]. Does MSVC support such spelling?
msvcandknown_semanticsare not reserved identifiers in the C++ Standard, so users are allowed to#definethem to anything, which may break every header that directly uses[[msvc::known_semantics]](e.g.<type_traits>).IIUC the Standard equivalently requires that every non-Standard attribute used in a Standard header to be spelled in reserved identifiers, e.g.
[[__msvc__::__known_semantics__]]. Does MSVC support such spelling?