платформы css, конечно, помогают, хотя они могут легко быть тяжелыми из-за "кучи" стилей, в которых Вы не будете нуждаться или использовать.
выезд IE Предназначения Используя Условные Комментарии и Всего Одна Таблица стилей в Положении является Всем для большой техники для питания IE определенные для версии стили, не используя взломы CSS; это позволяет Вам держать правила стиля вместе селектором, а не браузером.
Макросы __llvm__
и __clang__
являются официальным способом проверки компилятора LLVM (llvm-gcc или clang) или clang, соответственно.
__has_feature
и __has_builtin
- рекомендуемый способ проверки дополнительных возможностей компилятора при использовании clang, Они документированы здесь.
Обратите внимание, что список макросов компилятора builtin для gcc, llvm-gcc и clang можно найти, используя:
echo | clang -dM -E -
Этот препроцессор обрабатывает пустую строку и выплёвывает все макросы, определенные компилятором.
.Фрагмент из InitPreprocessor.cpp :
// Compiler version introspection macros.
DefineBuiltinMacro(Buf, "__llvm__=1"); // LLVM Backend
DefineBuiltinMacro(Buf, "__clang__=1"); // Clang Frontend
// Currently claim to be compatible with GCC 4.2.1-5621.
DefineBuiltinMacro(Buf, "__GNUC_MINOR__=2");
DefineBuiltinMacro(Buf, "__GNUC_PATCHLEVEL__=1");
DefineBuiltinMacro(Buf, "__GNUC__=4");
DefineBuiltinMacro(Buf, "__GXX_ABI_VERSION=1002");
DefineBuiltinMacro(Buf, "__VERSION__=\"4.2.1 Compatible Clang Compiler\"");
Я не нашел способа получить версию llvm и сам лязгать…
Для clang не следует проверять номер версии, вы должны проверять наличие необходимых функций с помощью макроса проверки функций .