diff --git a/config.htm b/config.htm index 899ceb6b..42fa55c9 100644 --- a/config.htm +++ b/config.htm @@ -74,8 +74,8 @@

you will see a list of the items being checked as the script works its way through the regression tests. Note that the configure script only really auto-detects your compiler if it's called g++, c++ or CC. If you are using some - other compiler you will need to set one or more of the following - environment variables:

+ other compiler you will need to set one or more of the following environment + variables:

+ + + + + @@ -860,6 +866,12 @@ void g() { return f(); } + + + + + @@ -948,6 +960,114 @@ void g() { return f(); } std::use_facet, but has a workaround class-version that does the job. This is primarily for the STLport std lib. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1136,8 +1256,8 @@ void g() { return f(); }

Variable

@@ -122,14 +122,15 @@ sh ./configure committing a configure-modified user.hpp to the cvs repository (something you will not be thanked for!).

Option 2: give the header a more memorable name, and place it somewhere - convenient; then, define the macro BOOST_USER_CONFIG to point to it. For example - create a new sub-directory <boost-root>/boost/config/user/, and copy the - header there; for example as "multithread-gcc-config.hpp". Then, when compiling - add the command line option: - -DBOOST_USER_CONFIG="<boost/config/user/multithread-gcc-config.hpp>", and boost - will use the new configuration header. This option allows you to generate more - than one configuration header, and to keep them separate from the boost source - - so that updates to the source do not interfere with your configuration.

+ convenient; then, define the macro BOOST_USER_CONFIG to point to it. For + example create a new sub-directory <boost-root>/boost/config/user/, and + copy the header there; for example as "multithread-gcc-config.hpp". Then, when + compiling add the command line option: + -DBOOST_USER_CONFIG="<boost/config/user/multithread-gcc-config.hpp>", and + boost will use the new configuration header. This option allows you to generate + more than one configuration header, and to keep them separate from the boost + source - so that updates to the source do not interfere with your + configuration.

User settable options

There are some configuration-options that represent user choices, rather than compiler defects or platform specific options. These are listed in @@ -844,6 +845,11 @@ void g() { return f(); }

Platform The platform has the POSIX header <dirent.h>.
BOOST_HAS_EXPM1PlatformThe platform has the functions expm1 expm1f and expm1l in <math.h>
BOOST_HAS_FTIME Platform The C++ implementation provides the (SGI) hash_set or hash_map classes.
BOOST_HAS_LOG1PPlatformThe platform has the functions log1p, log1pf and + log1pl in <math.h>.
BOOST_HAS_LONG_LONG Compiler
BOOST_HAS_TR1_ARRAYStandard libraryThe library has a TR1 conforming version of + <array>
BOOST_HAS_TR1_COMPLEX_OVERLOADSStandard libraryThe library has a version of <complex> that + supports passing scalars to the complex number algorithms.
BOOST_HAS_TR1_COMPLEX_INVERSE_TRIGStandard libraryThe library has a version of <complex> that + includes the new inverse trig functions from TR1.
BOOST_HAS_TR1_REFERENCE_WRAPPERStandard libraryThe library has TR1 conforming reference wrappers in + <functional>.
BOOST_HAS_TR1_RESULT_OFStandard libraryThe library has a TR1 conforming result_of template + in <functional>.
BOOST_HAS_TR1_MEM_FNStandard libraryThe library has a TR1 conforming mem_fn function + template in <functional>.
BOOST_HAS_TR1_BINDStandard libraryThe library has a TR1 conforming bind function + template in <functional>.
BOOST_HAS_TR1_FUNCTIONStandard libraryThe library has a TR1 conforming function + class template in <functional>.
BOOST_HAS_TR1_HASHStandard libraryThe library has a TR1 conforming hash function + template in <functional>.
BOOST_HAS_TR1_SHARED_PTRStandard libraryThe library has a TR1 conforming shared_ptr + class template in <memory>.
BOOST_HAS_TR1_RANDOMStandard libraryThe library has a TR1 conforming version of + <random>.
BOOST_HAS_TR1_REGEXStandard libraryThe library has a TR1 conforming version of + <regex>.
BOOST_HAS_TR1_TUPLEStandard libraryThe library has a TR1 conforming version of + <tuple>.
BOOST_HAS_TR1_TYPE_TRAITSStandard libraryThe library has a TR1 conforming version of + <type_traits>.
BOOST_HAS_TR1_UTILITYStandard libraryThe library has the TR1 additions to <utility> + (tuple interface to std::pair).
BOOST_HAS_TR1_UNORDERED_MAPStandard libraryThe library has a TR1 conforming version of + <unordered_map>.
BOOST_HAS_TR1_UNORDERED_SETStandard libraryThe library has a TR1 conforming version of + <unordered_set>.
BOOST_HAS_TR1Standard libraryImplies all the other BOOST_HAS_TR1_* macros should + be set.
BOOST_HAS_THREADS Platform/compiler

Boost Informational Macros

-

The following macros describe boost features; these are, generally speaking - the only boost macros that should be tested in user code.

+

The following macros describe boost features; these are, generally speaking the + only boost macros that should be tested in user code.

Macro

@@ -1237,10 +1357,10 @@ void g() { return f(); } be managed by #pragma's that tell the compiler what ABI to use for the types declared in your library. In order to avoid sprinkling #pragma's all over the boost headers, there are some prefix and suffix headers that do the job. - Typical usage is:

+ Typical usage is:

my_library.cpp

-
#ifndef MY_INCLUDE_GUARD
+         
#ifndef MY_INCLUDE_GUARD
 #define MY_INCLUDE_GUARD
 
 // all includes go here:
@@ -1260,7 +1380,7 @@ namespace boost{
       

my_library.cpp

-
...
+         
...
 // nothing special need be done in the implementation file
 ...
@@ -1284,23 +1404,23 @@ namespace boost{ search path, and the compiler and linker do the rest.  Boost.config supports this via the header <boost/config/auto_link.hpp>, before including this header one or more of the following macros need to be defined:

- - - - - - - - - - - - - -
BOOST_LIB_NAME - Required: An identifier containing the basename of the library, for - example 'boost_regex'.
BOOST_DYN_LINKOptional: when set link to dll rather than static library.
BOOST_LIB_DIAGNOSTICOptional: when set the header will print out the name of the library selected - (useful for debugging).
+ + + + + + + + + + + + + +
BOOST_LIB_NAME + Required: An identifier containing the basename of the library, for + example 'boost_regex'.
BOOST_DYN_LINKOptional: when set link to dll rather than static library.
BOOST_LIB_DIAGNOSTICOptional: when set the header will print out the name of the library selected + (useful for debugging).

If the compiler supports this mechanism, then it will be told to link against the appropriately named library, the actual algorithm used to mangle the name of the library is documented inside <boost/config/auto_link.hpp> and has @@ -1308,7 +1428,7 @@ namespace boost{

Typical usage is:

my_library.hpp

-
...
+         
...
 //
 // Don't include auto-linking code if the user has disabled it by
 // defining BOOST_ALL_NO_LIB, or BOOST_MY_LIBRARY_NO_LIB, or if this 
@@ -1326,7 +1446,7 @@ namespace boost{
       

my_library.cpp

-
// define BOOST_MY_LIBRARY_SOURCE so that the header knows that the
+         
// define BOOST_MY_LIBRARY_SOURCE so that the header knows that the
 // library is being built (possibly exporting rather than importing code)
 //
 #define BOOST_MY_LIBRARY_SOURCE 
@@ -1535,4 +1655,3 @@ int test()
       

 

-