<codeclass="computeroutput"><spanclass="identifier">BOOST_CXX_</span></code> for the compiler
one is using.
</li>
<liclass="listitem">
<codeclass="computeroutput"><spanclass="identifier">BOOST_LANGUAGE_</span></code> for language
standards one is compiling against.
</li>
<liclass="listitem">
<codeclass="computeroutput"><spanclass="identifier">BOOST_LIBC_</span></code> and <codeclass="computeroutput"><spanclass="identifier">BOOST_LIBSTD_</span></code> for the C and C++ standard
library in use.
</li>
<liclass="listitem">
<codeclass="computeroutput"><spanclass="identifier">BOOST_OS_</span></code> for the operating
<spanclass="identifier">std</span><spanclass="special">::</span><spanclass="identifier">cout</span><spanclass="special"><<</span><spanclass="string">"GCC compiler is at least version 4.0.0"</span><spanclass="special"><<</span><spanclass="identifier">std</span><spanclass="special">::</span><spanclass="identifier">endl</span><spanclass="special">;</span>
<spanclass="keyword">else</span>
<spanclass="identifier">std</span><spanclass="special">::</span><spanclass="identifier">cout</span><spanclass="special"><<</span><spanclass="string">"GCC compiler is at older than version 4.0.0, or not a GCC compiler"</span><spanclass="special"><<</span><spanclass="identifier">std</span><spanclass="special">::</span><spanclass="identifier">endl</span><spanclass="special">;</span>
<spanclass="identifier">std</span><spanclass="special">::</span><spanclass="identifier">cout</span><spanclass="special"><<</span><spanclass="string">"This is GNU GCC!"</span><spanclass="special"><<</span><spanclass="identifier">std</span><spanclass="special">::</span><spanclass="identifier">endl</span><spanclass="special">;</span>
<spanclass="keyword">else</span>
<spanclass="identifier">std</span><spanclass="special">::</span><spanclass="identifier">cout</span><spanclass="special"><<</span><spanclass="string">"Not GNU GCC."</span><spanclass="special"><<</span><spanclass="identifier">std</span><spanclass="special">::</span><spanclass="identifier">endl</span><spanclass="special">;</span>
<spanclass="keyword">const</span><spanclass="keyword">char</span><spanclass="special">*</span><spanclass="identifier">the_compiler</span><spanclass="special">=</span><spanclass="string">"GNU GCC, of at least version 4."</span>
<spanclass="preprocessor">#else</span>
<spanclass="keyword">const</span><spanclass="keyword">char</span><spanclass="special">*</span><spanclass="identifier">the_compiler</span><spanclass="special">=</span><spanclass="string">"GNU GCC, less than version 4."</span>
<spanclass="preprocessor">#endif</span>
<spanclass="preprocessor">#else</span>
<spanclass="keyword">const</span><spanclass="keyword">char</span><spanclass="special">*</span><spanclass="identifier">the_compiler</span><spanclass="special">=</span><spanclass="string">"Not GNU GCC."</span>
<span><aname="predef.using_the_predefs.using_the_boost_version_number_m"></a></span><aclass="link"href="using_the_predefs.html#predef.using_the_predefs.using_the_boost_version_number_m">Using the
false detections, or non-detections. It is up to the individual predefs to
ensure correct usage beyond the range guarantee.
</p>
<p>
The values for the arguments can be any preprocessor valid constant value expression.
Only constant value arithmetic is used in the definition of the <codeclass="computeroutput"><spanclass="identifier">BOOST_VERSION_NUMBER</span></code> macro and in any of
the other predef macros. This means that any allowed base is possible, i.e.
binary, octal, decimal, and hexadecimal. For example: