MSVC 2019 добавил новый встроенный _udiv128()
( документация ), который я хотел бы использовать в своем коде C ++.Однако эта встроенная функция в настоящее время недоступна ни в clang-cl 9.0.0, ни в компиляторе Intel C ++ 2019, хотя эти компиляторы устанавливают _MSC_VER=1920
точно так же, как MSVC 2019.
Из-за этой проблемы приведенный ниже код не компилируетсяиспользуя clang-cl и icl:
#include <immintrin.h>
#if _MSC_VER >= 1920
uint64_t res = _udiv128(a, b, c, &d);
#endif
Есть ли способ обнаружить MSVC с помощью препроцессора без обнаружения clang-cl, icl, ... Я хотел бы избежать проверки на _MSC_VER
, а затемза исключением всех других C / C ++ Windows-компиляторов.
В идеале я хотел бы обнаружить MSVC с помощью специального макроса Microsoft, который определен только для MSVC, но не для clang-cl, icl ...