![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
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 ::
реклама |