diff --git a/doc/config.qbk b/doc/config.qbk index 0bd3d321..0b02ee80 100644 --- a/doc/config.qbk +++ b/doc/config.qbk @@ -29,7 +29,7 @@ Distributed under the Boost Software License, Version 1.0. [/ Other web resources ] [def __STL_PORT__ [@http://stlport.sourceforge.net STLport]] -[def __BOOST_TRACKER__ [@http://sourceforge.net/tracker/?group_id=7586 Tracker]] +[def __BOOST_TRACKER__ [@https://svn.boost.org/trac/boost/newticket Trac]] [def __CORE_LANGUAGE_DR337__ [@http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#337 Core Language DR337]] [def __PRINCIPLES_AND_PATTERNS_ARTICLE__ [@http://www.objectmentor.com/resources/articles/Principles_and_Patterns.pdf following article]] diff --git a/doc/guidelines.qbk b/doc/guidelines.qbk index d1d78fa6..83f6418e 100644 --- a/doc/guidelines.qbk +++ b/doc/guidelines.qbk @@ -112,8 +112,8 @@ filename limit though. You will also need to provide a function prototype "`int test()`" that is declared in a namespace with the same name as the macro, but in all lower case, and which returns zero on success: - namespace boost_no_foo { + namespace boost_no_foo { int test() { // test code goes here: @@ -126,14 +126,18 @@ but in all lower case, and which returns zero on success: Once the test code is in place in libs/config/test, updating the configuration test system proceeds as: -* cd into `libs/config/tools` and run `bjam` : this generates the `.cpp` +* cd into `libs/config/tools` and run `bjam`. This generates the `.cpp` file test cases from the `.ipp` file, updates the -libs/config/test/all/Jamfile.v2, `config_test.cpp` and `config_info.cpp`. -* cd into `libs/config/test/all` and run `bjam `['MACRONAME` compiler-list`] : where +libs/config/test/all/Jamfile.v2, `config_test.cpp` and `config_info.cpp`.[br][br] + +* cd into `libs/config/test/all` and run `bjam `['MACRONAME` compiler-list`], where ['MACRONAME] is the name of the new macro, and ['`compiler-list`] is a space separated list of -compilers to test with. You should see the tests pass with those compilers -that don't have the defect, and fail with those that do. -* cd into `libs/config/test` and run `bjam config_info config_test `['`compiler-list`] : +compilers to test with.[br][br] +The xxx_pass_test and the xxx_fail_test [*should both report `**passed**`].[br][br] +If ['MACRONAME] is not defined when it should be defined, xxx_pass_test will not report `**passed**`. +If ['MACRONAME] is defined when it should not be defined, xxx_fail_test will not report `**passed**`.[br][br] + +* cd into `libs/config/test` and run `bjam config_info config_test `['`compiler-list`]. `config_info` should build and run cleanly for all the compilers in ['`compiler-list`] while `config_test` should fail for those that have the defect, and pass for those that do not. diff --git a/doc/html/boost_config/acknowledgements.html b/doc/html/boost_config/acknowledgements.html index 568cc3a1..347924f4 100644 --- a/doc/html/boost_config/acknowledgements.html +++ b/doc/html/boost_config/acknowledgements.html @@ -1,6 +1,6 @@ - + Acknowledgements @@ -47,7 +47,7 @@ - + + + +
+

+ BOOST_WORKAROUND +

+
+

+ This macro is used where a compiler specific workaround is required + that is not otherwise described by one of the other Boost.Config + macros. To use the macro you must first +

+
#include <boost/detail/workaround.hpp>
+
+

+ usage is then: +

+
#if BOOST_WORKAROUND(MACRONAME, CONDITION)
+   // workaround code goes here...
+#else
+   // Standard conforming code goes here...
+#endif
+
+

+ where MACRONAME is + a macro that usually describes the version number to be tested against, + and CONDITION is + a comparison operator followed by a value. For example BOOST_WORKAROUND(BOOST_INTEL, + <= 1010) would evaluate to 1 for Intel C++ 10.1 and earlier. +

+

+ The macro can also be used with BOOST_TESTED_AT + if all current compiler versions exhibit the issue, but the issue + is expected to be fixed at some later point. +

+

+ For example BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x590)) would normally evaluate to 1 for all values of __BORLANDC__ + unless the macro BOOST_DETECT_OUTDATED_WORKAROUNDS + is defined, in which case evaluates to (__BORLANDC__ <= + 0x590). +

+

+ Note: the ultimate source of documentation + for this macro is in boost/detail/workaround.hpp. +

+

BOOST_DEDUCED_TYPENAME @@ -3160,7 +3207,7 @@

- Describes the boost version number in XXYYZZ format such that: (BOOST_VERSION + Describes the boost version number in XYYYZZ format such that: (BOOST_VERSION % 100) is the sub-minor version, ((BOOST_VERSION / 100) % 1000) is the minor version, and (BOOST_VERSION / @@ -3534,7 +3581,7 @@ -