![]() |
![]() ![]() ![]() ![]() |
![]() |
ReferenceBoost , The Boost C++ Libraries BoostBook Documentation Subset , Chapter 26. Boost.Predef 1.4.1
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
< |
4.0.0 |
< |
5.0.0 |
< |
6.0.0 |
BOOST_ARCH_ARM
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
< |
8.0.0 |
< |
V.0.0 |
< |
V.0.0 |
< |
V.0.0 |
BOOST_ARCH_BLACKFIN
Процессоры Blackfin от аналоговых устройств.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
BOOST_ARCH_CONVEX
Выпуклый компьютерархитектура.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
1.0.0 |
< |
2.0.0 |
< |
3.2.0 |
< |
3.4.0 |
< |
3.8.0 |
BOOST_ARCH_IA64
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
BOOST_ARCH_M68K
Motorola 68kархитектура.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
Обнаружение |
< |
6.0.0 |
< |
6.0.0 |
< |
6.0.0 |
< |
4.0.0 |
< |
4.0.0 |
< |
4.0.0 |
< |
3.0.0 |
< |
3.0.0 |
< |
3.0.0 |
< |
2.0.0 |
< |
2.0.0 |
< |
2.0.0 |
< |
1.0.0 |
< |
1.0.0 |
< |
1.0.0 |
< |
0.0.1 |
< |
0.0.1 |
< |
0.0.1 |
BOOST_ARCH_MIPS
MIPSархитектура.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
< |
V.0.0 |
< |
1.0.0 |
< |
1.0.0 |
< |
2.0.0 |
< |
2.0.0 |
< |
2.0.0 |
< |
3.0.0 |
< |
3.0.0 |
< |
4.0.0 |
< |
4.0.0 |
BOOST_ARCH_PARISK
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
< |
1.0.0 |
< |
1.1.0 |
< |
1.1.0 |
< |
1.1.0 |
< |
2.0.0 |
< |
2.0.0 |
< |
2.0.0 |
< |
2.0.0 |
BOOST_ARCH_PPC
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
< |
6.1.0 |
< |
6.1.0 |
< |
6.3.0 |
< |
6.3.0 |
< |
6.4.0 |
< |
6.4.0 |
BOOST_ARCH_PYRAMID
Архитектура пирамиды 9810.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
BOOST_ARCH_RS6000
RS/6000архитектура.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
BOOST_ARCH_SPARC
SPARCархитектура.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
Обнаружение |
< |
9.0.0 |
< |
8.0.0 |
BOOST_ARCH_SH
Архитектура SuperH: Если доступные версии [1-5] специально обнаружены.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
5.0.0 |
< |
4.0.0 |
< |
3.0.0 |
< |
3.0.0 |
< |
2.0.0 |
< |
1.0.0 |
BOOST_ARCH_SYS370
Система/370архитектура.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
Обнаружение |
BOOST_ARCH_SYS390
Система/390архитектура.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
Обнаружение |
BOOST_ARCH_X86
Intel x86архитектура. Это категория, указывающая, что либо<BOOST_ARCH_X86_32>, либо<BOOST_ARCH_X86_64>обнаружено.
BOOST_ARCH_Z
|
символ |
Версия |
|---|---|
< |
Обнаружение |
BOOST_ARCH_X86_32
Архитектура Intel x86: Если доступные версии [3-6] специально обнаружены.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
< |
V.0.0 |
< |
V.0.0 |
< |
6.0.0 |
< |
5.0.0 |
< |
4.0.0 |
< |
3.0.0 |
BOOST_ARCH_X86_64
Intel IA-64архитектура.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
BOOST_COMP_BORLAND
Компилятор Borland C++. Номер версии доступен как основной, второстепенный и патч.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
Обнаружение |
< |
В.Р.П |
< |
В.Р.П |
BOOST_COMP_CLANG
Клангкомпилятор. Номер версии доступен как основной, второстепенный и патч.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
В.Р.П |
BOOST_COMP_COMO
Комо С++компилятор. Номер версии доступен как основной, второстепенный и патч.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
В.Р.П |
BOOST_COMP_DEC
Compaq C/C++Компилятор. Номер версии доступен как основной, второстепенный и патч.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
Обнаружение |
< |
В.Р.П |
< |
В.Р.П |
BOOST_COMP_DIAB
Диаб C/C++Компилятор. Номер версии доступен как основной, второстепенный и патч.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
В.Р.П |
BOOST_COMP_DMC
Компилятор Digital Mars. Номер версии доступен как основной, второстепенный и патч.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
В.Р.П |
BOOST_COMP_SYSC
Компилятор Dignus Systems/C++. Номер версии доступен как основной, второстепенный и патч.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
В.Р.П |
BOOST_COMP_EDG
EDG C++ Фронтендкомпилятор. Номер версии доступен как основной, второстепенный и патч.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
В.Р.0 |
BOOST_COMP_PATH
Компилятор EKOpath. Номер версии доступен как основной, второстепенный и патч.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
В.Р.П |
BOOST_COMP_GNUC
Gnu GCC C/C++Компилятор. Номер версии, доступный как Major, minor и patch (если есть).
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
В.Р.П |
< |
В.Р.0 |
BOOST_COMP_GCCXML
|
символ |
Версия |
|---|---|
< |
Обнаружение |
BOOST_COMP_GHS
Компилятор Green Hills C/C++. Номер версии доступен как основной, второстепенный и патч.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
Обнаружение |
< |
В.Р.П |
< |
В.Р.П |
BOOST_COMP_HPACC
HP aC++ компилятор. Номер версии доступен как основной, второстепенный и патч.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
В.Р.П |
BOOST_COMP_IAR
Компилятор IAR C/C++. Номер версии доступен как основной, второстепенный и патч.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
В.Р.П |
BOOST_COMP_IBM
IBM XL C/C++Компилятор. Номер версии доступен как основной, второстепенный и патч.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
< |
В.Р.П |
< |
В.Р.П |
< |
В.Р.П |
< |
В.Р.П |
BOOST_COMP_INTEL
Компилятор Intel C/C++. Номер версии доступен как основной, второстепенный и патч.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
< |
В.Р.П |
BOOST_COMP_KCC
Компилятор Kai C++. Номер версии доступен как основной, второстепенный и патч.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
В.Р.П |
BOOST_COMP_LLVM
LLVMкомпилятор.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
BOOST_COMP_HIGHC
Компилятор MetaWare High C/C++.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
BOOST_COMP_MWERKS
Компилятор Metrowerks CodeWarrior. Номер версии доступен как основной, второстепенный и патч.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
Обнаружение |
< |
В.Р.П |
< |
V.R.P >= 4.2.0 |
< |
9.R.0 |
< |
8.R.0 |
BOOST_COMP_MRI
|
символ |
Версия |
|---|---|
< |
Обнаружение |
BOOST_COMP_MPW
MPW C++компилятор. Номер версии доступен как основной, так и второстепенный.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
< |
В.Р.0 |
BOOST_COMP_PALM
Palm C/C++ компилятор. Номер версии доступен как основной, второстепенный и патч.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
В.Р.П |
BOOST_COMP_PGI
Компилятор Portland Group C/C++.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
В.Р.П |
BOOST_COMP_SGI
SGI MIPSproкомпилятор. Номер версии доступен как основной, второстепенный и патч.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
Обнаружение |
< |
В.Р.П |
< |
В.Р.П |
BOOST_COMP_SUNPRO
Компилятор Oracle Solaris Studio. Номер версии доступен как основной, второстепенный и патч.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
Обнаружение |
< |
В.Р.П |
< |
В.Р.П |
< |
VV.RR.P |
< |
VV.RR.P |
BOOST_COMP_TENDRA
|
символ |
Версия |
|---|---|
< |
Обнаружение |
BOOST_COMP_MSVC
Компилятор Microsoft Visual C/C++Номер версии доступен как основной, второстепенный и патч.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
В.Р.П |
< |
В.Р.0 |
BOOST_COMP_WATCOM
Компилятор Watcom C++. Номер версии доступен как основной, так и второстепенный.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
В.Р.П |
BOOST_LANG_OBJC
Объектив-Сязык.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
BOOST_LANG_STDC
Стандартный язык C. При наличии года стандарта определяется как YYYY. ММ.1 с даты Эпохи.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
В.Р.П |
BOOST_LANG_STDCPP
Стандартный язык C++. При наличии года стандарта определяется как YYYY. ММ.1 с даты Эпохи. Из-за того, как работает процесс стандартизации C++, определенный год версии не будет широко известным годом стандарта. Конкретно определены версии:
Table 26.1. Detected Version Number vs. C++ Standard Year
|
Обнаружен номер версии |
Стандартный год |
C++ Стандарт |
|---|---|---|
27.11.1 |
1998 |
ISO/IEC 14882:1998 |
41.12.1 |
2011 |
ISO/IEC 14882:2011 |
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
YYYY.MM.1 |
BOOST_LANG_STDCPPCLI
Стандартный язык C++/CLI. При наличии года стандарта определяется как YYYY. ММ.1 с даты Эпохи.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
YYYY.MM.1 |
BOOST_LANG_STDECPP
Стандартный встроенный язык C++.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
BOOST_LIB_C_GNU
GNU glibcСтандартная библиотека C. Номер версии доступен как основной, так и второстепенный.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
Обнаружение |
< |
В.Р.0 |
< |
В.Р.0 |
BOOST_LIB_C_UC
uClibcСтандартная библиотека С.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
В.Р.П |
BOOST_LIB_C_VMS
Библиотека VMS libc Standard C. Номер версии доступен как основной, второстепенный и патч.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
В.Р.П |
BOOST_LIB_C_ZOS
z/OS libc Стандартная библиотека C. Номер версии доступен как основной, второстепенный и патч.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
В.Р.П |
< |
В.Р.П |
BOOST_LIB_STD_CXX
libc++C++ Стандартная библиотека.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
V.0.P |
BOOST_LIB_STD_DINKUMWARE
DinkumwareСтандартная библиотека C++. При наличии номера версии как Major, minor, так и patch.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
Обнаружение |
< |
В.Р.0 |
BOOST_LIB_STD_COMO
Comeau ComputingСтандартный C++ Библиотека. Номер версии доступен как основной.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
V.0.0 |
BOOST_LIB_STD_MSIPL
Modena Software Lib++Стандартная библиотека C++.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
Обнаружение |
BOOST_LIB_STD_MSL
MetrowerksСтандартная библиотека C++. Номер версии доступен как основной, второстепенный и патч.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
Обнаружение |
< |
В.Р.П |
< |
В.Р.П |
BOOST_LIB_STD_RW
RoguewaveСтандартная библиотека C++. При наличии номера версии как Major, minor, так и patch.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
Обнаружение |
< |
В.Р.П |
BOOST_LIB_STD_SGI
SGIСтандартная библиотека C++. При наличии номера версии как Major, minor, так и patch.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
В.Р.П |
BOOST_LIB_STD_GNU
GNU libstdc++Стандартная библиотека C++. Номер версии: год (с 1970), месяц и день.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
Обнаружение |
< |
В.Р.П |
< |
В.Р.П |
BOOST_LIB_STD_STLPORT
STLport Standard C++библиотека. Номер версии доступен как основной, второстепенный и патч.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
Обнаружение |
< |
В.Р.П |
< |
В.Р.П |
< |
В.Р.П |
BOOST_LIB_STD_IBM
Библиотека IBM VACPP Standard C++.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
BOOST_OS_AIX
IBM AIXоперационная система. Номер версии доступен как основной, второстепенный и патч.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
Обнаружение |
< |
4.3.0 |
< |
4.1.0 |
< |
3.2.0 |
< |
3.0.0 |
BOOST_OS_AMIGAOS
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
Обнаружение |
BOOST_OS_ANDROID
Androidоперационная система.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
BOOST_OS_BEOS
|
символ |
Версия |
|---|---|
< |
Обнаружение |
BOOST_OS_BSD
BSD имеет различные операционные системы, каждая из которых обнаружена индивидуально. Это определяет следующие вариации и устанавливает конкретный макрос номера версии для соответствия:
BOOST_OS_BSD_DRAGONFLY>DragonFly BSDBOOST_OS_BSD_FREE>FreeBSDBOOST_OS_BSD_BSDI>BSDi BSD/OSBOOST_OS_BSD_NET>NetBSDBOOST_OS_BSD_OPEN>OpenBSD![]() |
Note |
|---|---|
Общий< |
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
Обнаружение |
< |
4.2.0 |
< |
4.3.0 |
< |
4.4.0 |
< |
В.Р.0 |
BOOST_OS_CYGWIN
ЦигвинЭкология.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
BOOST_OS_HAIKU
Haikuоперационная система.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
BOOST_OS_HPUX
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
BOOST_OS_IOS
iOSоперационная система.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
< |
__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED___1000 |
BOOST_OS_IRIX
IRIXоперационная система.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
Обнаружение |
BOOST_OS_LINUX
Linuxоперационная система.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
Обнаружение |
BOOST_OS_MACOS
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
< |
10.0.0 |
иначе |
9.0.0 |
BOOST_OS_OS400
Операционная система IBM OS/400.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
BOOST_OS_QNX
QNXоперационная система. Номер версии доступен как крупный, так и незначительный, если это возможно. Версия 4 была специально разработана.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
Обнаружение |
< |
В.Р.0 |
< |
4.0.0 |
BOOST_OS_SOLARIS
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
Обнаружение |
BOOST_OS_UNIX
Unix Environmentоперационная система.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
BOOST_OS_SVR4
Операционная система SVR4 Environment.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
BOOST_OS_VMS
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
Обнаружение |
< |
В.Р.П |
BOOST_OS_WINDOWS
Операционная система Microsoft Windows.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
BOOST_OS_BSD_BSDI
Операционная система BSDi BSD/OS.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
BOOST_OS_BSD_DRAGONFLY
Дракон Операционная система Fly BSD.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
BOOST_OS_BSD_FREE
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
В.Р.П |
BOOST_OS_BSD_NET
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
Обнаружение |
< |
В.Р.П |
< |
0,8,0 |
< |
0.9.0 |
< |
1.0.0 |
< |
В.Р.П |
BOOST_OS_BSD_OPEN
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
2.0.0 |
< |
2.1.0 |
< |
2.2.0 |
< |
2.3.0 |
< |
2.4.0 |
< |
2.5.0 |
< |
2.6.0 |
< |
2.7.0 |
< |
2.8.0 |
< |
2.9.0 |
< |
3.0.0 |
< |
3.1.0 |
< |
3.2.0 |
< |
3.3.0 |
< |
3.4.0 |
< |
3.5.0 |
< |
3.6.0 |
< |
3.7.0 |
< |
3.8.0 |
< |
3.9.0 |
< |
4.0.0 |
< |
4.1.0 |
< |
4.2.0 |
< |
4.3.0 |
< |
4.4.0 |
< |
4.5.0 |
< |
4.6.0 |
< |
4.7.0 |
< |
4.8.0 |
< |
4.9.0 |
BOOST_PLAT_MINGW
Платформа MinGW. Номер версии доступен как основной, второстепенный и патч.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
Обнаружение |
< |
В.Р.0 |
< |
В.Р.0 |
BOOST_PLAT_WINDOWS_DESKTOP
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
Обнаружение |
BOOST_PLAT_WINDOWS_PHONE
|
символ |
Версия |
|---|---|
< |
Обнаружение |
BOOST_PLAT_WINDOWS_RUNTIME
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
Обнаружение |
BOOST_PLAT_WINDOWS_STORE
|
символ |
Версия |
|---|---|
< |
Обнаружение |
Предефы SIMD зависят от опций компилятора. Например, вам придется добавить опцию<-msse3>в clang или gcc, чтобы включить SSE3. Предисловия SIMD также являются инклюзивными. Это означает, что если SSE3 включен, то все другие расширения с более низким номером версии будут включены и обнаружены. Однако некоторые расширения являются специфичными для процессора, они не могут быть обнаружены или включены при включении верхней версии.
![]() |
Note |
|---|---|
SSE(1) и SSE2 автоматически включаются по умолчанию при использовании архитектуры x86-64. |
Чтобы проверить, включено ли какое-либо расширение SIMD, вы можете использовать:
#include <boost/predef/hardware/simd.h> #include <iostream> int main() { #if defined(BOOST_HW_SIMD_AVAILABLE) std::cout << "SIMD detected!" << std::endl; #endif return 0; }
При написании определенного кода SIMD вы можете проверить, было ли обнаружено конкретное расширение. Для этого вам нужно использовать правильную архитектуру и сравнить ее. Они имеют форму<BOOST_HW_SIMD_"ARCH">(где<"ARCH">или<ARM>,<PPC>или<X86>). Например, если вы компилируете код для архитектуры x86, вам придется использовать<BOOST_HW_SIMD_X86>. Его значением будет номер версии самого последнего SIMD-расширения, обнаруженного для архитектуры.
Чтобы проверить, включено ли расширение:
#include <boost/predef/hardware/simd.h> #include <iostream> int main() { #if BOOST_HW_SIMD_X86 >= BOOST_HW_SIMD_X86_SSE3_VERSION std::cout << "This is SSE3!" << std::endl; #endif return 0; }
![]() |
Note |
|---|---|
_VERSIONопределяет номер версии карты на реальные реальные идентификаторы. Таким образом, легче писать сравнения, не путая номера версий. |
Чтобы«строго»проверить последнее обнаруженное расширение:
#include <boost/predef/hardware/simd.h> #include <iostream> int main() { #if BOOST_HW_SIMD_X86 == BOOST_HW_SIMD_X86_SSE3_VERSION std::cout << "This is SSE3 and this is the most recent enabled extension!" << std::endl; #endif return 0; }
Из-за систем версий предефов и инклюзивного свойства макросов расширений SIMD вы можете легко проверить диапазоны поддерживаемых расширений:
#include <boost/predef/hardware/simd.h> #include <iostream> int main() { #if BOOST_HW_SIMD_X86 >= BOOST_HW_SIMD_X86_SSE2_VERSION &&\ BOOST_HW_SIMD_X86 <= BOOST_HW_SIMD_X86_SSSE3_VERSION std::cout << "This is SSE2, SSE3 and SSSE3!" << std::endl; #endif return 0; }
BOOST_HW_SIMD
Расширение SIMD для определенных архитектур. Номер версии зависит от обнаруженного расширения.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
BOOST_HW_SIMD_X86
Расширение SIMD для x86при обнаружении. Номер версии зависит от самого последнего обнаруженного расширения.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
|
символ |
Версия |
|---|---|
< |
BOOST_HW_SIMD_X86_SSE_VERSION |
< |
BOOST_HW_SIMD_X86_SSE_VERSION |
< |
BOOST_HW_SIMD_X86_SSE_VERSION |
< |
BOOST_HW_SIMD_X86_SSE2_VERSION |
< |
BOOST_HW_SIMD_X86_SSE2_VERSION |
< |
BOOST_HW_SIMD_X86_SSE2_VERSION |
< |
BOOST_HW_SIMD_X86_SSE3_VERSION |
< |
BOOST_HW_SIMD_X86_SSSE3_VERSION |
< |
BOOST_HW_SIMD_X86_SSE4_1_VERSION |
< |
BOOST_HW_SIMD_X86_SSE4_2_VERSION |
< |
BOOST_HW_SIMD_X86_AVX_VERSION |
< |
BOOST_HW_SIMD_X86_FMA3_VERSION |
< |
BOOST_HW_SIMD_X86_AVX2_VERSION |
BOOST_HW_SIMD_X86_AMD
Расширение SIMD для x86 (AMD)при обнаружении. Номер версии зависит от самого последнего обнаруженного расширения.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
|
символ |
Версия |
|---|---|
< |
BOOST_HW_SIMD_X86_SSE4A_VERSION |
< |
BOOST_HW_SIMD_X86_FMA4_VERSION |
< |
BOOST_HW_SIMD_X86_XOP_VERSION |
< |
BOOST_HW_SIMD_X86 |
![]() |
Note |
|---|---|
Этот предеф включает в себя все другие расширения x86 SIMD, а также имеет другие более конкретные расширения (FMA4, XOP, SSE4a). Вы должны использовать этот предеф вместо< |
BOOST_HW_SIMD_ARM
Расширение SIMD для ARMпри обнаружении. Номер версии зависит от самого последнего обнаруженного расширения.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
|
символ |
Версия |
|---|---|
< |
BOOST_HW_SIMD_ARM_NEON_VERSION |
< |
BOOST_HW_SIMD_ARM_NEON_VERSION |
< |
BOOST_HW_SIMD_ARM_NEON_VERSION |
BOOST_HW_SIMD_PPC
Расширение SIMD для PowerPCпри обнаружении. Номер версии зависит от самого последнего обнаруженного расширения.
|
символ |
Версия |
|---|---|
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
< |
Обнаружение |
|
символ |
Версия |
|---|---|
< |
BOOST_HW_SIMD_PPC_QPX_VERSION |
< |
BOOST_HW_SIMD_PPC_VMX_VERSION |
< |
BOOST_HW_SIMD_PPC_VMX_VERSION |
< |
BOOST_HW_SIMD_PPC_VSX_VERSION |
Эти определения представляют собой версии расширений x86 SIMD.
![]() |
Note |
|---|---|
ВыДОЛЖНЫсравнить их с предефом< |
BOOST_HW_SIMD_X86_MMX_VERSION
Номер версии расширенияMMXx86.
Номер версии:0.99.0.
BOOST_HW_SIMD_X86_SSE_VERSION
Номер версии расширенияSSEx86.
Номер версии:1.0.0.
BOOST_HW_SIMD_X86_SSE2_VERSION
Номер версии расширенияSSE2x86.
Номер версии:2.0.0.
BOOST_HW_SIMD_X86_SSE3_VERSION
Номер версии расширенияSSE3x86.
Номер версии:3.0.0.
BOOST_HW_SIMD_X86_SSSE3_VERSION
Номер версии расширенияSSSE3x86.
Номер версии:3.1.0.
BOOST_HW_SIMD_X86_SSE4_1_VERSION
Номер версии расширенияSSE4_1x86.
Номер версии:4.1.0.
BOOST_HW_SIMD_X86_SSE4_2_VERSION
Номер версии расширенияSSE4_2x86.
Номер версии:4.2.0.
BOOST_HW_SIMD_X86_AVX_VERSION
Номер версии расширенияAVXx86.
Номер версии:5.0.0.
BOOST_HW_SIMD_X86_FMA3_VERSION
Номер версии расширенияFMA3x86.
Номер версии:5.2.0.
BOOST_HW_SIMD_X86_AVX2_VERSION
Номер версии расширенияAVX2x86.
Номер версии:5.3.0.
BOOST_HW_SIMD_X86_MIC_VERSION
MIC(Xeon Phi) x86 номер версии расширения.
Номер версии:9.0.0.
Эти определения представляют собой версии расширений SIMD x86 (AMD specific).
![]() |
Note |
|---|---|
ВыДОЛЖНЫсравнить их с предефом< |
BOOST_HW_SIMD_X86_AMD_SSE4A_VERSION
Расширение SSE4Ax86 (специфическое для AMD).
Номер версии:4.0.0.
BOOST_HW_SIMD_X86_AMD_FMA4_VERSION
Расширение FMA4x86 (специфическое для AMD).
Номер версии:5.1.0.
BOOST_HW_SIMD_X86_AMD_XOP_VERSION
Расширение XOPx86 (специфическое для AMD).
Номер версии:5.1.1.
Эти определения представляют собой версии расширений ARM SIMD.
![]() |
Note |
|---|---|
ВыДОЛЖНЫсравнить их с предефом< |
BOOST_HW_SIMD_ARM_NEON_VERSION
NEONARM номер версии расширения.
Номер версии:1.0.0.
Эти определения представляют собой версии расширений Power PC SIMD.
![]() |
Note |
|---|---|
ВыДОЛЖНЫсравнить их с предефом< |
BOOST_HW_SIMD_PPC_VMX_VERSION
VMXномер версии расширения Powerpc.
Номер версии:1.0.0.
BOOST_HW_SIMD_PPC_VSX_VERSION
VSXномер версии расширения Powerpc.
Номер версии:1.1.0.
BOOST_HW_SIMD_PPC_QPX_VERSION
Номер версии расширения QPX Powerpc.
Номер версии:2.0.0.
BOOST_ENDIAN_*
Обнаружение эндианного порядка памяти. В этом заголовке есть четыре определенных макроса, которые определяют различные, как правило, возможные эндианные упорядочения памяти:
BOOST_ENDIAN_BIG_BYTE>, бигэндиан с байтами.BOOST_ENDIAN_BIG_WORD>, перевернутый словами биг-эндиан.BOOST_ENDIAN_LITTLE_BYTE>, байт-свэп малоэндиан.BOOST_ENDIAN_LITTLE_WORD>, слово-swapped little-endian.Обнаружение является консервативным, поскольку оно определяет только эндианность, которую оно знает наверняка. В частности, биэндианность не указывается, так как практически невозможно определить эндианность из чего-либо, кроме предоставленного заголовка операционной системы. И известные в настоящее время заголовки не определяют, что программная биэндианность доступна.
Эта реализация представляет собой компиляцию различной общедоступной информации и приобретенных знаний:
BOOST_VERSION_NUMBER
BOOST_VERSION_NUMBER(major,minor,patch)
Определяет стандартные номера версий с такими свойствами:
major>может находиться в диапазоне [0,99].minor>может находиться в диапазоне [0,99].patch>может находиться в диапазоне [0,99999].BOOST_PREDEF_MAKE_..
macros
Эти наборы макросов разлагают общие макросы номеров версий поставщиков, которые состоят из версий, изменений и патчей. В Конвенции об именовании указывается:
BOOST_PREDEF_MAKE_0X>» для шестнадцатеричных цифр и «<BOOST_PREDEF_MAKE_10>» для десятичных цифр.V>» указывает цифры версии, «<R>» указывает цифры пересмотра, «<P>» указывает цифры исправления, а «<0>» указывает проигнорированную цифру.Макросы:
<BOOST_PREDEF_MAKE_0X_VRP(V)>
<BOOST_PREDEF_MAKE_0X_VVRP(V)>
<BOOST_PREDEF_MAKE_0X_VRPP(V)>
<BOOST_PREDEF_MAKE_0X_VVRR(V)>
<BOOST_PREDEF_MAKE_0X_VRRPPPP(V)>
<BOOST_PREDEF_MAKE_0X_VVRRP(V)>
<BOOST_PREDEF_MAKE_0X_VRRPP000(V)>
<BOOST_PREDEF_MAKE_0X_VVRRPP(V)>
<BOOST_PREDEF_MAKE_10_VPPP(V)>
<BOOST_PREDEF_MAKE_10_VRP(V)>
<BOOST_PREDEF_MAKE_10_VRP000(V)>
<BOOST_PREDEF_MAKE_10_VRPP(V)>
<BOOST_PREDEF_MAKE_10_VRR(V)>
<BOOST_PREDEF_MAKE_10_VRRPP(V)>
<BOOST_PREDEF_MAKE_10_VRR000(V)>
<BOOST_PREDEF_MAKE_10_VV00(V)>
<BOOST_PREDEF_MAKE_10_VVRR(V)>
<BOOST_PREDEF_MAKE_10_VVRRPP(V)>
<BOOST_PREDEF_MAKE_10_VVRR0PP00(V)>
<BOOST_PREDEF_MAKE_10_VVRR0PPPP(V)>
<BOOST_PREDEF_MAKE_10_VVRR00PP00(V)>
BOOST_PREDEF_MAKE_*..
date macros
Макросы разложения дат возвращают дату относительно даты Эпохи 1970 года. Если месяц недоступен, 1 января используется как месяц и день. Если день недоступен, но месяц есть, 1-е число месяца используется как день.
<BOOST_PREDEF_MAKE_DATE(Y,M,D)>
<BOOST_PREDEF_MAKE_YYYYMMDD(V)>
<BOOST_PREDEF_MAKE_YYYY(V)>
<BOOST_PREDEF_MAKE_YYYYMM(V)>
Статья Reference раздела The Boost C++ Libraries BoostBook Documentation Subset Chapter 26. Boost.Predef 1.4.1 может быть полезна для разработчиков на c++ и boost.
:: Главная :: Chapter 26. Boost.Predef 1.4.1 ::
реклама |