CLang-CL поддерживает атрибуты, прагмы и другие функции как для MSVC, так и для собственного CLang.

Компилятор (драйвер) CLang-CL включен в пакет CLangвнутри установки MSVC , этот компилятор позволяет компилировать исходники с использованием бэкенда CLang, принимая все (или большинство) специфичные для MSVC-CL параметры команды, поэтому clang-cl можно использовать как прямая замена для MSVC cl.

Случайно заметил, что следующий код прекрасно компилируется в clang-cl:

      inline __attribute__((always_inline)) int f(int x) { return x + 1; }
inline __forceinline int g(int x) { return x + 1; }

int main() {
    volatile int x = f(4) * g(6);
}

То есть оба смешанные нативные-CLang/GCC-специфичные __attribute__((always_inline))и специфичный для MSVC __forceinlineатрибуты понимаются и применяются правильно одновременно.

Знаете ли вы, может ли CLang-CL таким же образом принимать, использовать и смешивать все (или большинство) другие атрибуты и прагмы, характерные как для MSVC, так и для собственного CLang/GCC?

Также знаете ли вы, насколько хорошо CLang-CL охватывает все остальные функции MSVC и собственного CLang? Охватывает ли он большинство (или все) особенностей обоих миров одновременно?

0 ответов

Другие вопросы по тегам