Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Reference

Boost , The Boost C++ Libraries BoostBook Documentation Subset , Chapter 26. Boost.Predef 1.4.1

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext
BOOST_ARCH_ALPHA

DEC AlphaАрхитектура.

символ

Версия

<__alpha__>

Обнаружение

<__alpha>

Обнаружение

<_M_ALPHA>

Обнаружение

<__alpha_ev4__>

4.0.0

<__alpha_ev5__>

5.0.0

<__alpha_ev6__>

6.0.0

BOOST_ARCH_ARM

Архитектура ARM.

символ

Версия

<__arm__>

Обнаружение

<__arm64>

Обнаружение

<__thumb__>

Обнаружение

<__TARGET_ARCH_ARM>

Обнаружение

<__TARGET_ARCH_THUMB>

Обнаружение

<_M_ARM>

Обнаружение

<__arm64>

8.0.0

<__TARGET_ARCH_ARM>

V.0.0

<__TARGET_ARCH_THUMB>

V.0.0

<_M_ARM>

V.0.0

BOOST_ARCH_BLACKFIN

Процессоры Blackfin от аналоговых устройств.

символ

Версия

<__bfin__>

Обнаружение

<__BFIN__>

Обнаружение

<bfin>

Обнаружение

<BFIN>

Обнаружение

BOOST_ARCH_CONVEX

Выпуклый компьютерархитектура.

символ

Версия

<__convex__>

Обнаружение

<__convex_c1__>

1.0.0

<__convex_c2__>

2.0.0

<__convex_c32__>

3.2.0

<__convex_c34__>

3.4.0

<__convex_c38__>

3.8.0

BOOST_ARCH_IA64

Архитектура Intel Itanium 64.

символ

Версия

<__ia64__>

Обнаружение

<_IA64>

Обнаружение

<__IA64__>

Обнаружение

<__ia64>

Обнаружение

<_M_IA64>

Обнаружение

<__itanium__>

Обнаружение

BOOST_ARCH_M68K

Motorola 68kархитектура.

символ

Версия

<__m68k__>

Обнаружение

<M68000>

Обнаружение

<__mc68060__>

6.0.0

<mc68060>

6.0.0

<__mc68060>

6.0.0

<__mc68040__>

4.0.0

<mc68040>

4.0.0

<__mc68040>

4.0.0

<__mc68030__>

3.0.0

<mc68030>

3.0.0

<__mc68030>

3.0.0

<__mc68020__>

2.0.0

<mc68020>

2.0.0

<__mc68020>

2.0.0

<__mc68010__>

1.0.0

<mc68010>

1.0.0

<__mc68010>

1.0.0

<__mc68000__>

0.0.1

<mc68000>

0.0.1

<__mc68000>

0.0.1

BOOST_ARCH_MIPS

MIPSархитектура.

символ

Версия

<__mips__>

Обнаружение

<__mips>

Обнаружение

<__MIPS__>

Обнаружение

<__mips>

V.0.0

<_MIPS_ISA_MIPS1>

1.0.0

<_R3000>

1.0.0

<_MIPS_ISA_MIPS2>

2.0.0

<__MIPS_ISA2__>

2.0.0

<_R4000>

2.0.0

<_MIPS_ISA_MIPS3>

3.0.0

<__MIPS_ISA3__>

3.0.0

<_MIPS_ISA_MIPS4>

4.0.0

<__MIPS_ISA4__>

4.0.0

BOOST_ARCH_PARISK

Архитектура HP/PA RISC.

символ

Версия

<__hppa__>

Обнаружение

<__hppa>

Обнаружение

<__HPPA__>

Обнаружение

<_PA_RISC1_0>

1.0.0

<_PA_RISC1_1>

1.1.0

<__HPPA11__>

1.1.0

<__PA7100__>

1.1.0

<_PA_RISC2_0>

2.0.0

<__RISC2_0__>

2.0.0

<__HPPA20__>

2.0.0

<__PA8000__>

2.0.0

BOOST_ARCH_PPC

Архитектура PowerPC.

символ

Версия

<__powerpc>

Обнаружение

<__powerpc__>

Обнаружение

<__POWERPC__>

Обнаружение

<__ppc__>

Обнаружение

<_M_PPC>

Обнаружение

<_ARCH_PPC>

Обнаружение

<__PPCGECKO__>

Обнаружение

<__PPCBROADWAY__>

Обнаружение

<_XENON>

Обнаружение

<__ppc601__>

6.1.0

<_ARCH_601>

6.1.0

<__ppc603__>

6.3.0

<_ARCH_603>

6.3.0

<__ppc604__>

6.4.0

<__ppc604__>

6.4.0

BOOST_ARCH_PYRAMID

Архитектура пирамиды 9810.

символ

Версия

<pyr>

Обнаружение

BOOST_ARCH_RS6000

RS/6000архитектура.

символ

Версия

<__THW_RS6000>

Обнаружение

<_IBMR2>

Обнаружение

<_POWER>

Обнаружение

<_ARCH_PWR>

Обнаружение

<_ARCH_PWR2>

Обнаружение

BOOST_ARCH_SPARC

SPARCархитектура.

символ

Версия

<__sparc__>

Обнаружение

<__sparc>

Обнаружение

<__sparcv9>

9.0.0

<__sparcv8>

8.0.0

BOOST_ARCH_SH

Архитектура SuperH: Если доступные версии [1-5] специально обнаружены.

символ

Версия

<__sh__>

Обнаружение

<__SH5__>

5.0.0

<__SH4__>

4.0.0

<__sh3__>

3.0.0

<__SH3__>

3.0.0

<__sh2__>

2.0.0

<__sh1__>

1.0.0

BOOST_ARCH_SYS370

Система/370архитектура.

символ

Версия

<__370__>

Обнаружение

<__THW_370__>

Обнаружение

BOOST_ARCH_SYS390

Система/390архитектура.

символ

Версия

<__s390__>

Обнаружение

<__s390x__>

Обнаружение

BOOST_ARCH_X86

Intel x86архитектура. Это категория, указывающая, что либо<BOOST_ARCH_X86_32>, либо<BOOST_ARCH_X86_64>обнаружено.

BOOST_ARCH_Z

з/архитектура.

символ

Версия

<__SYSC_ZARCH__>

Обнаружение

BOOST_ARCH_X86_32

Архитектура Intel x86: Если доступные версии [3-6] специально обнаружены.

символ

Версия

<i386>

Обнаружение

<__i386__>

Обнаружение

<__i486__>

Обнаружение

<__i586__>

Обнаружение

<__i686__>

Обнаружение

<__i386>

Обнаружение

<_M_IX86>

Обнаружение

<_X86_>

Обнаружение

<__THW_INTEL__>

Обнаружение

<__I86__>

Обнаружение

<__INTEL__>

Обнаружение

<__I86__>

V.0.0

<_M_IX86>

V.0.0

<__i686__>

6.0.0

<__i586__>

5.0.0

<__i486__>

4.0.0

<__i386__>

3.0.0

BOOST_ARCH_X86_64

Intel IA-64архитектура.

символ

Версия

<__x86_64>

Обнаружение

<__x86_64__>

Обнаружение

<__amd64__>

Обнаружение

<__amd64>

Обнаружение

<_M_X64>

Обнаружение

BOOST_COMP_BORLAND

Компилятор Borland C++. Номер версии доступен как основной, второстепенный и патч.

символ

Версия

<__BORLANDC__>

Обнаружение

<__CODEGEARC__>

Обнаружение

<__BORLANDC__>

В.Р.П

<__CODEGEARC__>

В.Р.П

BOOST_COMP_CLANG

Клангкомпилятор. Номер версии доступен как основной, второстепенный и патч.

символ

Версия

<__clang__>

Обнаружение

<__clang_major__>,<__clang_minor__>,<__clang_patchlevel__>

В.Р.П

BOOST_COMP_COMO

Комо С++компилятор. Номер версии доступен как основной, второстепенный и патч.

символ

Версия

<__COMO__>

Обнаружение

<__COMO_VERSION__>

В.Р.П

BOOST_COMP_DEC

Compaq C/C++Компилятор. Номер версии доступен как основной, второстепенный и патч.

символ

Версия

<__DECCXX>

Обнаружение

<__DECC>

Обнаружение

<__DECCXX_VER>

В.Р.П

<__DECC_VER>

В.Р.П

BOOST_COMP_DIAB

Диаб C/C++Компилятор. Номер версии доступен как основной, второстепенный и патч.

символ

Версия

<__DCC__>

Обнаружение

<__VERSION_NUMBER__>

В.Р.П

BOOST_COMP_DMC

Компилятор Digital Mars. Номер версии доступен как основной, второстепенный и патч.

символ

Версия

<__DMC__>

Обнаружение

<__DMC__>

В.Р.П

BOOST_COMP_SYSC

Компилятор Dignus Systems/C++. Номер версии доступен как основной, второстепенный и патч.

символ

Версия

<__SYSC__>

Обнаружение

<__SYSC_VER__>

В.Р.П

BOOST_COMP_EDG

EDG C++ Фронтендкомпилятор. Номер версии доступен как основной, второстепенный и патч.

символ

Версия

<__EDG__>

Обнаружение

<__EDG_VERSION__>

В.Р.0

BOOST_COMP_PATH

Компилятор EKOpath. Номер версии доступен как основной, второстепенный и патч.

символ

Версия

<__PATHCC__>

Обнаружение

<__PATHCC__>,<__PATHCC_MINOR__>,<__PATHCC_PATCHLEVEL__>

В.Р.П

BOOST_COMP_GNUC

Gnu GCC C/C++Компилятор. Номер версии, доступный как Major, minor и patch (если есть).

символ

Версия

<__GNUC__>

Обнаружение

<__GNUC__>,<__GNUC_MINOR__>,<__GNUC_PATCHLEVEL__>

В.Р.П

<__GNUC__><__GNUC_MINOR__>

В.Р.0

BOOST_COMP_GCCXML

Компилятор GCC XML.

символ

Версия

<__GCCXML__>

Обнаружение

BOOST_COMP_GHS

Компилятор Green Hills C/C++. Номер версии доступен как основной, второстепенный и патч.

символ

Версия

<__ghs>

Обнаружение

<__ghs__>

Обнаружение

<__GHS_VERSION_NUMBER__>

В.Р.П

<__ghs>

В.Р.П

BOOST_COMP_HPACC

HP aC++ компилятор. Номер версии доступен как основной, второстепенный и патч.

символ

Версия

<__HP_aCC>

Обнаружение

<__HP_aCC>

В.Р.П

BOOST_COMP_IAR

Компилятор IAR C/C++. Номер версии доступен как основной, второстепенный и патч.

символ

Версия

<__IAR_SYSTEMS_ICC__>

Обнаружение

<__VER__>

В.Р.П

BOOST_COMP_IBM

IBM XL C/C++Компилятор. Номер версии доступен как основной, второстепенный и патч.

символ

Версия

<__IBMCPP__>

Обнаружение

<__xlC__>

Обнаружение

<__xlc__>

Обнаружение

<__COMPILER_VER__>

В.Р.П

<__xlC__>

В.Р.П

<__xlc__>

В.Р.П

<__IBMCPP__>

В.Р.П

BOOST_COMP_INTEL

Компилятор Intel C/C++. Номер версии доступен как основной, второстепенный и патч.

символ

Версия

<__INTEL_COMPILER>

Обнаружение

<__ICL>

Обнаружение

<__ICC>

Обнаружение

<__ECC>

Обнаружение

<__INTEL_COMPILER>

В.Р.П

BOOST_COMP_KCC

Компилятор Kai C++. Номер версии доступен как основной, второстепенный и патч.

символ

Версия

<__KCC>

Обнаружение

<__KCC_VERSION>

В.Р.П

BOOST_COMP_LLVM

LLVMкомпилятор.

символ

Версия

<__llvm__>

Обнаружение

BOOST_COMP_HIGHC

Компилятор MetaWare High C/C++.

символ

Версия

<__HIGHC__>

Обнаружение

BOOST_COMP_MWERKS

Компилятор Metrowerks CodeWarrior. Номер версии доступен как основной, второстепенный и патч.

символ

Версия

<__MWERKS__>

Обнаружение

<__CWCC__>

Обнаружение

<__CWCC__>

В.Р.П

<__MWERKS__>

V.R.P >= 4.2.0

<__MWERKS__>

9.R.0

<__MWERKS__>

8.R.0

BOOST_COMP_MRI

Компилятор Microtec C/C++.

символ

Версия

<_MRI>

Обнаружение

BOOST_COMP_MPW

MPW C++компилятор. Номер версии доступен как основной, так и второстепенный.

символ

Версия

<__MRC__>

Обнаружение

<MPW_C>

Обнаружение

<MPW_CPLUS>

Обнаружение

<__MRC__>

В.Р.0

BOOST_COMP_PALM

Palm C/C++ компилятор. Номер версии доступен как основной, второстепенный и патч.

символ

Версия

<_PACC_VER>

Обнаружение

<_PACC_VER>

В.Р.П

BOOST_COMP_PGI

Компилятор Portland Group C/C++.

символ

Версия

<__PGI>

Обнаружение

<__PGIC__>,<__PGIC_MINOR__>,<__PGIC_PATCHLEVEL__>

В.Р.П

BOOST_COMP_SGI

SGI MIPSproкомпилятор. Номер версии доступен как основной, второстепенный и патч.

символ

Версия

<__sgi>

Обнаружение

<sgi>

Обнаружение

<_SGI_COMPILER_VERSION>

В.Р.П

<_COMPILER_VERSION>

В.Р.П

BOOST_COMP_SUNPRO

Компилятор Oracle Solaris Studio. Номер версии доступен как основной, второстепенный и патч.

символ

Версия

<__SUNPRO_CC>

Обнаружение

<__SUNPRO_C>

Обнаружение

<__SUNPRO_CC>

В.Р.П

<__SUNPRO_C>

В.Р.П

<__SUNPRO_CC>

VV.RR.P

<__SUNPRO_C>

VV.RR.P

BOOST_COMP_TENDRA

Компилятор TenDRA C/C++.

символ

Версия

<__TenDRA__>

Обнаружение

BOOST_COMP_MSVC

Компилятор Microsoft Visual C/C++Номер версии доступен как основной, второстепенный и патч.

символ

Версия

<_MSC_VER>

Обнаружение

<_MSC_FULL_VER>

В.Р.П

<_MSC_VER>

В.Р.0

BOOST_COMP_WATCOM

Компилятор Watcom C++. Номер версии доступен как основной, так и второстепенный.

символ

Версия

<__WATCOMC__>

Обнаружение

<__WATCOMC__>

В.Р.П

BOOST_LANG_OBJC

Объектив-Сязык.

символ

Версия

<__OBJC__>

Обнаружение

BOOST_LANG_STDC

Стандартный язык C. При наличии года стандарта определяется как YYYY. ММ.1 с даты Эпохи.

символ

Версия

<__STDC__>

Обнаружение

<__STDC_VERSION__>

В.Р.П

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


символ

Версия

<__cplusplus>

Обнаружение

<__cplusplus>

YYYY.MM.1

BOOST_LANG_STDCPPCLI

Стандартный язык C++/CLI. При наличии года стандарта определяется как YYYY. ММ.1 с даты Эпохи.

символ

Версия

<__cplusplus_cli>

Обнаружение

<__cplusplus_cli>

YYYY.MM.1

BOOST_LANG_STDECPP

Стандартный встроенный язык C++.

символ

Версия

<__embedded_cplusplus>

Обнаружение

BOOST_LIB_C_GNU

GNU glibcСтандартная библиотека C. Номер версии доступен как основной, так и второстепенный.

символ

Версия

<__GLIBC__>

Обнаружение

<__GNU_LIBRARY__>

Обнаружение

<__GLIBC__>,<__GLIBC_MINOR__>

В.Р.0

<__GNU_LIBRARY__>,<__GNU_LIBRARY_MINOR__>

В.Р.0

BOOST_LIB_C_UC

uClibcСтандартная библиотека С.

символ

Версия

<__UCLIBC__>

Обнаружение

<__UCLIBC_MAJOR__>,<__UCLIBC_MINOR__>,<__UCLIBC_SUBLEVEL__>

В.Р.П

BOOST_LIB_C_VMS

Библиотека VMS libc Standard C. Номер версии доступен как основной, второстепенный и патч.

символ

Версия

<__CRTL_VER>

Обнаружение

<__CRTL_VER>

В.Р.П

BOOST_LIB_C_ZOS

z/OS libc Стандартная библиотека C. Номер версии доступен как основной, второстепенный и патч.

символ

Версия

<__LIBREL__>

Обнаружение

<__LIBREL__>

В.Р.П

<__TARGET_LIB__>

В.Р.П

BOOST_LIB_STD_CXX

libc++C++ Стандартная библиотека.

символ

Версия

<_LIBCPP_VERSION>

Обнаружение

<_LIBCPP_VERSION>

V.0.P

BOOST_LIB_STD_DINKUMWARE

DinkumwareСтандартная библиотека C++. При наличии номера версии как Major, minor, так и patch.

символ

Версия

<_YVALS>,<__IBMCPP__>

Обнаружение

<_CPPLIB_VER>

Обнаружение

<_CPPLIB_VER>

В.Р.0

BOOST_LIB_STD_COMO

Comeau ComputingСтандартный C++ Библиотека. Номер версии доступен как основной.

символ

Версия

<__LIBCOMO__>

Обнаружение

<__LIBCOMO_VERSION__>

V.0.0

BOOST_LIB_STD_MSIPL

Modena Software Lib++Стандартная библиотека C++.

символ

Версия

<MSIPL_COMPILE_H>

Обнаружение

<__MSIPL_COMPILE_H>

Обнаружение

BOOST_LIB_STD_MSL

MetrowerksСтандартная библиотека C++. Номер версии доступен как основной, второстепенный и патч.

символ

Версия

<__MSL_CPP__>

Обнаружение

<__MSL__>

Обнаружение

<__MSL_CPP__>

В.Р.П

<__MSL__>

В.Р.П

BOOST_LIB_STD_RW

RoguewaveСтандартная библиотека C++. При наличии номера версии как Major, minor, так и patch.

символ

Версия

<__STD_RWCOMPILER_H__>

Обнаружение

<_RWSTD_VER>

Обнаружение

<_RWSTD_VER>

В.Р.П

BOOST_LIB_STD_SGI

SGIСтандартная библиотека C++. При наличии номера версии как Major, minor, так и patch.

символ

Версия

<__STL_CONFIG_H>

Обнаружение

<__SGI_STL>

В.Р.П

BOOST_LIB_STD_GNU

GNU libstdc++Стандартная библиотека C++. Номер версии: год (с 1970), месяц и день.

символ

Версия

<__GLIBCXX__>

Обнаружение

<__GLIBCPP__>

Обнаружение

<__GLIBCXX__>

В.Р.П

<__GLIBCPP__>

В.Р.П

BOOST_LIB_STD_STLPORT

STLport Standard C++библиотека. Номер версии доступен как основной, второстепенный и патч.

символ

Версия

<__SGI_STL_PORT>

Обнаружение

<_STLPORT_VERSION>

Обнаружение

<_STLPORT_MAJOR>,<_STLPORT_MINOR>,<_STLPORT_PATCHLEVEL>

В.Р.П

<_STLPORT_VERSION>

В.Р.П

<__SGI_STL_PORT>

В.Р.П

BOOST_LIB_STD_IBM

Библиотека IBM VACPP Standard C++.

символ

Версия

<__IBMCPP__>

Обнаружение

BOOST_OS_AIX

IBM AIXоперационная система. Номер версии доступен как основной, второстепенный и патч.

символ

Версия

<_AIX>

Обнаружение

<__TOS_AIX__>

Обнаружение

<_AIX43>

4.3.0

<_AIX41>

4.1.0

<_AIX32>

3.2.0

<_AIX3>

3.0.0

BOOST_OS_AMIGAOS

Операционная система AmigaOS.

символ

Версия

<AMIGA>

Обнаружение

<__amigaos__>

Обнаружение

BOOST_OS_ANDROID

Androidоперационная система.

символ

Версия

<__ANDROID__>

Обнаружение

BOOST_OS_BEOS

Операционная система BeOS.

символ

Версия

<__BEOS__>

Обнаружение

BOOST_OS_BSD

Операционная система BSD.

BSD имеет различные операционные системы, каждая из которых обнаружена индивидуально. Это определяет следующие вариации и устанавливает конкретный макрос номера версии для соответствия:

[Note] Note

Общий<BOOST_OS_BSD>установлен во всех случаях для обозначения некоторой формы БСД. При обнаружении вышеперечисленных вариантов также устанавливается соответствующий макрос.

символ

Версия

<BSD>

Обнаружение

<_SYSTYPE_BSD>

Обнаружение

<BSD4_2>

4.2.0

<BSD4_3>

4.3.0

<BSD4_4>

4.4.0

<BSD>

В.Р.0

BOOST_OS_CYGWIN

ЦигвинЭкология.

символ

Версия

<__CYGWIN__>

Обнаружение

BOOST_OS_HAIKU

Haikuоперационная система.

символ

Версия

<__HAIKU__>

Обнаружение

BOOST_OS_HPUX

Операционная система HP-UX.

символ

Версия

<hpux>

Обнаружение

<_hpux>

Обнаружение

<__hpux>

Обнаружение

BOOST_OS_IOS

iOSоперационная система.

символ

Версия

<__APPLE__>

Обнаружение

<__MACH__>

Обнаружение

<__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__>

Обнаружение

<__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__>

__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED___1000

BOOST_OS_IRIX

IRIXоперационная система.

символ

Версия

<sgi>

Обнаружение

<__sgi>

Обнаружение

BOOST_OS_LINUX

Linuxоперационная система.

символ

Версия

<linux>

Обнаружение

<__linux>

Обнаружение

BOOST_OS_MACOS

Операционная система Mac OS.

символ

Версия

<macintosh>

Обнаружение

<Macintosh>

Обнаружение

<__APPLE__>

Обнаружение

<__MACH__>

Обнаружение

<__APPLE__>,<__MACH__>

10.0.0

иначе

9.0.0

BOOST_OS_OS400

Операционная система IBM OS/400.

символ

Версия

<__OS400__>

Обнаружение

BOOST_OS_QNX

QNXоперационная система. Номер версии доступен как крупный, так и незначительный, если это возможно. Версия 4 была специально разработана.

символ

Версия

<__QNX__>

Обнаружение

<__QNXNTO__>

Обнаружение

<_NTO_VERSION>

В.Р.0

<__QNX__>

4.0.0

BOOST_OS_SOLARIS

Операционная система Solaris.

символ

Версия

<sun>

Обнаружение

<__sun>

Обнаружение

BOOST_OS_UNIX

Unix Environmentоперационная система.

символ

Версия

<unix>

Обнаружение

<__unix>

Обнаружение

<_XOPEN_SOURCE>

Обнаружение

<_POSIX_SOURCE>

Обнаружение

BOOST_OS_SVR4

Операционная система SVR4 Environment.

символ

Версия

<__sysv__>

Обнаружение

<__SVR4>

Обнаружение

<__svr4__>

Обнаружение

<_SYSTYPE_SVR4>

Обнаружение

BOOST_OS_VMS

Операционная система VMS.

символ

Версия

<VMS>

Обнаружение

<__VMS>

Обнаружение

<__VMS_VER>

В.Р.П

BOOST_OS_WINDOWS

Операционная система Microsoft Windows.

символ

Версия

<_WIN32>

Обнаружение

<_WIN64>

Обнаружение

<__WIN32__>

Обнаружение

<__TOS_WIN__>

Обнаружение

<__WINDOWS__>

Обнаружение

BOOST_OS_BSD_BSDI

Операционная система BSDi BSD/OS.

символ

Версия

<__bsdi__>

Обнаружение

BOOST_OS_BSD_DRAGONFLY

Дракон Операционная система Fly BSD.

символ

Версия

<__DragonFly__>

Обнаружение

BOOST_OS_BSD_FREE

Операционная система FreeBSD.

символ

Версия

<__FreeBSD__>

Обнаружение

<__FreeBSD_version>

В.Р.П

BOOST_OS_BSD_NET

Операционная система NetBSD.

символ

Версия

<__NETBSD__>

Обнаружение

<__NetBSD__>

Обнаружение

<__NETBSD_version>

В.Р.П

<NetBSD0_8>

0,8,0

<NetBSD0_9>

0.9.0

<NetBSD1_0>

1.0.0

<__NetBSD_Version>

В.Р.П

BOOST_OS_BSD_OPEN

Операционная система OpenBSD.

символ

Версия

<__OpenBSD__>

Обнаружение

<OpenBSD2_0>

2.0.0

<OpenBSD2_1>

2.1.0

<OpenBSD2_2>

2.2.0

<OpenBSD2_3>

2.3.0

<OpenBSD2_4>

2.4.0

<OpenBSD2_5>

2.5.0

<OpenBSD2_6>

2.6.0

<OpenBSD2_7>

2.7.0

<OpenBSD2_8>

2.8.0

<OpenBSD2_9>

2.9.0

<OpenBSD3_0>

3.0.0

<OpenBSD3_1>

3.1.0

<OpenBSD3_2>

3.2.0

<OpenBSD3_3>

3.3.0

<OpenBSD3_4>

3.4.0

<OpenBSD3_5>

3.5.0

<OpenBSD3_6>

3.6.0

<OpenBSD3_7>

3.7.0

<OpenBSD3_8>

3.8.0

<OpenBSD3_9>

3.9.0

<OpenBSD4_0>

4.0.0

<OpenBSD4_1>

4.1.0

<OpenBSD4_2>

4.2.0

<OpenBSD4_3>

4.3.0

<OpenBSD4_4>

4.4.0

<OpenBSD4_5>

4.5.0

<OpenBSD4_6>

4.6.0

<OpenBSD4_7>

4.7.0

<OpenBSD4_8>

4.8.0

<OpenBSD4_9>

4.9.0

BOOST_PLAT_MINGW

Платформа MinGW. Номер версии доступен как основной, второстепенный и патч.

символ

Версия

<__MINGW32__>

Обнаружение

<__MINGW64__>

Обнаружение

<__MINGW64_VERSION_MAJOR>,<__MINGW64_VERSION_MINOR>

В.Р.0

<__MINGW32_VERSION_MAJOR>,<__MINGW32_VERSION_MINOR>

В.Р.0

BOOST_PLAT_WINDOWS_DESKTOP

символ

Версия

<!WINAPI_FAMILY>

Обнаружение

<WINAPI_FAMILY==WINAPI_FAMILY_DESKTOP_APP>

Обнаружение

BOOST_PLAT_WINDOWS_PHONE

символ

Версия

<WINAPI_FAMILY==WINAPI_FAMILY_PHONE_APP>

Обнаружение

BOOST_PLAT_WINDOWS_RUNTIME

символ

Версия

<WINAPI_FAMILY==WINAPI_FAMILY_APP>

Обнаружение

<WINAPI_FAMILY==WINAPI_FAMILY_PHONE_APP>

Обнаружение

BOOST_PLAT_WINDOWS_STORE

символ

Версия

<WINAPI_FAMILY==WINAPI_FAMILY_APP>

Обнаружение

Предефы SIMD зависят от опций компилятора. Например, вам придется добавить опцию<-msse3>в clang или gcc, чтобы включить SSE3. Предисловия SIMD также являются инклюзивными. Это означает, что если SSE3 включен, то все другие расширения с более низким номером версии будут включены и обнаружены. Однако некоторые расширения являются специфичными для процессора, они не могут быть обнаружены или включены при включении верхней версии.

[Note] 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] 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;
}
[Note] Note

В отличие от gcc и clang, Visual Studio не позволяет точно указать варианты SSE, которые вы хотите использовать, единственными обнаружениями, которые будут иметь место, являются SSE, SSE2, AVX и AVX2. Подробнее см. здесь.

BOOST_HW_SIMD

Расширение SIMD для определенных архитектур. Номер версии зависит от обнаруженного расширения.

символ

Версия

<BOOST_HW_SIMD_X86_AVAILABLE>

Обнаружение

<BOOST_HW_SIMD_X86_AMD_AVAILABLE>

Обнаружение

<BOOST_HW_SIMD_ARM_AVAILABLE>

Обнаружение

<BOOST_HW_SIMD_PPC_AVAILABLE>

Обнаружение

BOOST_HW_SIMD_X86

Расширение SIMD для x86при обнаружении. Номер версии зависит от самого последнего обнаруженного расширения.

символ

Версия

<__SSE__>

Обнаружение

<_M_X64>

Обнаружение

<_M_IX86_FP>= 1>

Обнаружение

<__SSE2__>

Обнаружение

<_M_X64>

Обнаружение

<_M_IX86_FP>= 2>

Обнаружение

<__SSE3__>

Обнаружение

<__SSSE3__>

Обнаружение

<__SSE4_1__>

Обнаружение

<__SSE4_2__>

Обнаружение

<__AVX__>

Обнаружение

<__FMA__>

Обнаружение

<__AVX2__>

Обнаружение

символ

Версия

<__SSE__>

BOOST_HW_SIMD_X86_SSE_VERSION

<_M_X64>

BOOST_HW_SIMD_X86_SSE_VERSION

<_M_IX86_FP>= 1>

BOOST_HW_SIMD_X86_SSE_VERSION

<__SSE2__>

BOOST_HW_SIMD_X86_SSE2_VERSION

<_M_X64>

BOOST_HW_SIMD_X86_SSE2_VERSION

<_M_IX86_FP>= 2>

BOOST_HW_SIMD_X86_SSE2_VERSION

<__SSE3__>

BOOST_HW_SIMD_X86_SSE3_VERSION

<__SSSE3__>

BOOST_HW_SIMD_X86_SSSE3_VERSION

<__SSE4_1__>

BOOST_HW_SIMD_X86_SSE4_1_VERSION

<__SSE4_2__>

BOOST_HW_SIMD_X86_SSE4_2_VERSION

<__AVX__>

BOOST_HW_SIMD_X86_AVX_VERSION

<__FMA__>

BOOST_HW_SIMD_X86_FMA3_VERSION

<__AVX2__>

BOOST_HW_SIMD_X86_AVX2_VERSION

BOOST_HW_SIMD_X86_AMD

Расширение SIMD для x86 (AMD)при обнаружении. Номер версии зависит от самого последнего обнаруженного расширения.

символ

Версия

<__SSE4A__>

Обнаружение

<__FMA4__>

Обнаружение

<__XOP__>

Обнаружение

<BOOST_HW_SIMD_X86>

Обнаружение

символ

Версия

<__SSE4A__>

BOOST_HW_SIMD_X86_SSE4A_VERSION

<__FMA4__>

BOOST_HW_SIMD_X86_FMA4_VERSION

<__XOP__>

BOOST_HW_SIMD_X86_XOP_VERSION

<BOOST_HW_SIMD_X86>

BOOST_HW_SIMD_X86

[Note] Note

Этот предеф включает в себя все другие расширения x86 SIMD, а также имеет другие более конкретные расширения (FMA4, XOP, SSE4a). Вы должны использовать этот предеф вместо<BOOST_HW_SIMD_X86>, чтобы проверить, были ли обнаружены эти конкретные расширения.

BOOST_HW_SIMD_ARM

Расширение SIMD для ARMпри обнаружении. Номер версии зависит от самого последнего обнаруженного расширения.

символ

Версия

<__ARM_NEON__>

Обнаружение

<__aarch64__>

Обнаружение

<_M_ARM>

Обнаружение

символ

Версия

<__ARM_NEON__>

BOOST_HW_SIMD_ARM_NEON_VERSION

<__aarch64__>

BOOST_HW_SIMD_ARM_NEON_VERSION

<_M_ARM>

BOOST_HW_SIMD_ARM_NEON_VERSION

BOOST_HW_SIMD_PPC

Расширение SIMD для PowerPCпри обнаружении. Номер версии зависит от самого последнего обнаруженного расширения.

символ

Версия

<__VECTOR4DOUBLE__>

Обнаружение

<__ALTIVEC__>

Обнаружение

<__VEC__>

Обнаружение

<__VSX__>

Обнаружение

символ

Версия

<__VECTOR4DOUBLE__>

BOOST_HW_SIMD_PPC_QPX_VERSION

<__ALTIVEC__>

BOOST_HW_SIMD_PPC_VMX_VERSION

<__VEC__>

BOOST_HW_SIMD_PPC_VMX_VERSION

<__VSX__>

BOOST_HW_SIMD_PPC_VSX_VERSION

Эти определения представляют собой версии расширений x86 SIMD.

[Note] Note

ВыДОЛЖНЫсравнить их с предефом<BOOST_HW_SIMD_X86>.

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] Note

ВыДОЛЖНЫсравнить их с предефом<BOOST_HW_SIMD_X86_AMD>.

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] Note

ВыДОЛЖНЫсравнить их с предефом<BOOST_HW_SIMD_ARM>.

BOOST_HW_SIMD_ARM_NEON_VERSION

NEONARM номер версии расширения.

Номер версии:1.0.0.

Эти определения представляют собой версии расширений Power PC SIMD.

[Note] Note

ВыДОЛЖНЫсравнить их с предефом<BOOST_HW_SIMD_PPC>.

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.

Обнаружение является консервативным, поскольку оно определяет только эндианность, которую оно знает наверняка. В частности, биэндианность не указывается, так как практически невозможно определить эндианность из чего-либо, кроме предоставленного заголовка операционной системы. И известные в настоящее время заголовки не определяют, что программная биэндианность доступна.

Эта реализация представляет собой компиляцию различной общедоступной информации и приобретенных знаний:

  1. Незаменимая документация «Предопределенного компилятора Macros»Endianness.
  2. Различные эндианские спецификации доступны на страницах компьютерной архитектурыВикипедии.
  3. Обычно доступны поиски заголовков, которые определяют эндианность.
BOOST_VERSION_NUMBER
BOOST_VERSION_NUMBER(major,minor,patch)

Определяет стандартные номера версий с такими свойствами:

  • Десятичная база целых чисел в диапазоне [0,1000000000]. Диапазон чисел рассчитан на тройню (2,2,5). Что соответствует 32-битному значению.
  • Число<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)>


PrevUpHomeNext

Статья Reference раздела The Boost C++ Libraries BoostBook Documentation Subset Chapter 26. Boost.Predef 1.4.1 может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Chapter 26. Boost.Predef 1.4.1 ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 16:55:23/0.045650959014893/1